我目前正在使用iOS和XMPPFramework开发一个小型聊天应用程序。
我在公共XMPP服务器上的XMPP客户端上注册了两个用户。
但是,当我通过我的iOS应用程序向裸JID发送消息时,应用程序上连接的用户将不会收到该消息,因为XMPP客户端已发送具有更高优先级的状态。
为了解决这个问题,我只让用户以最高优先级发送他们的状态,这样当我向他们的裸JID发送消息时,消息被路由到适当的资源。但是,我觉得这不是一个很好的方法。我想将消息直接发送到完整的JID,但我不知道如何获得它。
在没有订阅的情况下发送或接收用户的完整JID的正确方法是什么?是可能还是只是不好的做法?我应该在场吗?
答案 0 :(得分:0)
AppDelegate.h
+ (AppDelegate*)instance;
AppDelegate.m
+ (AppDelegate*)instance {
return (AppDelegate*)[[UIApplication sharedApplication] delegate];
}
然后在你的ViewController.m中
XMPPJID *myJID = [[AppDelegate instance] xmppStream].myJID;
这将为您提供完整的JID。希望这就是你问的问题。如果不是或者其他任何事情,请告诉我。