XMPP无需订阅即可获取/发送完整JID

时间:2014-07-31 23:58:56

标签: ios objective-c xmpp xmppframework

我目前正在使用iOS和XMPPFramework开发一个小型聊天应用程序。

我在公共XMPP服务器上的XMPP客户端上注册了两个用户。

但是,当我通过我的iOS应用程序向裸JID发送消息时,应用程序上连接的用户将不会收到该消息,因为XMPP客户端已发送具有更高优先级的状态。

为了解决这个问题,我只让用户以最高优先级发送他们的状态,这样当我向他们的裸JID发送消息时,消息被路由到适当的资源。但是,我觉得这不是一个很好的方法。我想将消息直接发送到完整的JID,但我不知道如何获得它。

在没有订阅的情况下发送或接收用户的完整JID的正确方法是什么?是可能还是只是不好的做法?我应该在场吗?

1 个答案:

答案 0 :(得分:0)

AppDelegate.h
+ (AppDelegate*)instance;

AppDelegate.m
+ (AppDelegate*)instance { return (AppDelegate*)[[UIApplication sharedApplication] delegate]; }

然后在你的ViewController.m中 XMPPJID *myJID = [[AppDelegate instance] xmppStream].myJID;

这将为您提供完整的JID。希望这就是你问的问题。如果不是或者其他任何事情,请告诉我。