iOS的Robbiehanson xmpp框架没有收到聊天消息
试图创建一个非常简单的概念验证iOS xmpp应用程序与robbiehanson xmpp框架的工作,只需要能够发送和接收消息和名单数据。 我可以成功验证并发送消息,但当用户尝试回复我的消息时,我不会收到它们。 我已经实现了didReceiveMessage委托方法,如下所示:
-(void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message {
NSLog(@"incoming message: %@", message);
}
但我从来没有收到这个日志。 如果我使用与此xmpp服务器通信的现有web应用程序或android应用程序登录,我会收到这些消息,因此我倾向于认为它们的格式正确。 是否有需要添加到XMPPStream接收消息的模块? 我正在像这样设置流(某些字符串值已被更改为安全性,而不是):
stream = [[XMPPStream alloc] init];
stream.enableBackgroundingOnSocket = YES;
stream.hostName = @"hostname.com";
stream.hostPort = 5222;
XMPPRosterCoreDataStorage* xmppRosterStorage = [[XMPPRosterCoreDataStorage alloc] initWithInMemoryStore];
XMPPRoster* xmppRoster = [[XMPPRoster alloc] initWithRosterStorage:xmppRosterStorage];
xmppRoster.autoFetchRoster = YES;
xmppRoster.autoAcceptKnownPresenceSubscriptionRequests = YES;
[stream addDelegate:self delegateQueue:dispatch_get_main_queue()];
XMPPJID* jid = [XMPPJID jidWithUser:@"username" domain:@"domain.com" resource:@"iOS"];
[stream setMyJID:jid];
[xmppRoster activate:stream];
[stream connectWithTimeout:XMPPStreamTimeoutNone error:&error]
然后在xmppStreamDidConnect方法中进行身份验证
NSString *myPassword = @"password";
NSError *error = nil;
[stream authenticateWithPassword:myPassword error:&error]
当我发送消息时,我使用以下代码段:
MPPJID* recipient = [XMPPJID jidWithString:@"user@domain.com"];
XMPPMessage* message = [[XMPPMessage alloc] initWithType:@"chat" to:recipient];
[message addBody:@"hello world"];
[stream sendElement: message];
我想有一件简单的事情,我错过了之前使用过这个功能的人,可以马上指出我。 如果需要解决此问题,我已准备好提供其他信息。
我只需要广播我的存在,然后我就可以收到消息。
我将这些行添加到了streamDidAuthenticate方法
XMPPPresence *presence = [XMPPPresence presence];
[sender sendElement:presence];
链接地址: http://www.djcxy.com/p/93527.html
上一篇: Robbiehanson xmpp framework for iOS not receiving chat messages