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

下一篇: Sending Facebook message as specific page