iOS 및 Android 플랫폼에서 모두 작동하는 하나의 채팅 응용 프로그램을 만들고 있습니다. 때로는 양쪽 구독이 모두 수신되지 않습니다. 아무도 가능한 문제가 될 수 있다고 말해 줄 수 있습니까?크로스 플랫폼 (iOS-Android) xmpp 요청
=================== iOS의 경우 ===================
[appDelegateObj.xmppRoster acceptPresenceSubscriptionRequestFrom:aReceiverJID andAddToRoster:TRUE];
사용자 분리
XMPPJID *XMPPJIDObj=[XMPPJID jidWithString:aStrOtherJabberId];
[appDelegateObj.xmppRoster addUser:XMPPJIDObj withNickname:nil];
이 요구를 접수
전송 요청,
[appDelegateObj.xmppRoster removeUser:[XMPPJID jidWithString:aPresenceObj.userJabberID]];
============ ========= 안드로이드 ===================== 요청을 보내기
,
Roster.setDefaultSubscriptionMode(SubscriptionMode.manual);
myApp.getXmppConnection().getRoster().createEntry(visitorJabberId, visitorUserName, null);
수락 요청,
들어final Presence presence1 = new Presence(Type.subscribed);
presence1.setFrom(myApp.getUserJabberId());
presence1.setType(Type.subscribed);
presence1.setTo(visitorJabberId);
myApp.getXmppConnection().sendPacket(presence1);
myApp.getXmppConnection().getRoster().createEntry(visitorJabberId, visitorUserName, null);
제거 사용자
final RosterPacket rosterPacket = new RosterPacket();
rosterPacket.setType(IQ.Type.SET);
final RosterPacket.Item item = new RosterPacket.Item(visitorJabberId, null);
item.setItemType(RosterPacket.ItemType.remove);
rosterPacket.addRosterItem(item);
myApp.getXmppConnection().sendPacket(rosterPacket);
quickblox chatting subscription을 사용하고 있습니까? 그렇다면 그들은 안드로이드와 IOS에서 로스터를 별도로 구현합니다. –
아니오 quickblox 채팅을 사용하지 않습니다. – cjd