【问题标题】:XMPP Getting/Sending Full JID Without SubscribingXMPP 在不订阅的情况下获取/发送完整的 JID
【发布时间】:2014-09-24 02:28:32
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 我也有类似的问题。我正在尝试发送好友请求,即在对方用户离线时订阅用户并向他们发送消息

标签: ios objective-c xmpp xmppframework


【解决方案1】:

AppDelegate.h
+ (AppDelegate*)instance;

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

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

这将为您提供完整的 JID。希望这是您所问的。如果没有,请告诉我。

【讨论】:

  • 它返回我 20515@myserver/d825a3afw 如何删除“/-----”之后的值
  • 可以使用 .myJID.user 访问“/”之前的值
猜你喜欢
  • 2014-08-31
  • 2020-04-19
  • 1970-01-01
  • 1970-01-01
  • 2012-03-27
  • 1970-01-01
  • 1970-01-01
  • 2016-10-27
  • 1970-01-01
相关资源
最近更新 更多