【问题标题】:XMPP JID seems like always nullXMPP JID 似乎总是为空
【发布时间】:2015-08-01 14:20:27
【问题描述】:

我使用 XMPP 构建一个聊天应用程序。在尝试登录时,我看到我的 JID 实例始终为空。因此,我可以连接服务器,但无法正确验证。

self.xmppStream.myJID = [XMPPJID jidWithString:@"efeuser"];
NSLog(@"%@",self.xmppStream.myJID.user);

它将myJID 记录为空。

我也尝试使用注册包在Openfire上创建一个新用户,但用户JID也是空的。

 <iq xmlns="jabber:client" type="error" to="bowerchat.com/3df1adfc">
  <query xmlns="jabber:iq:register">
   <username/>
   <password>efe1414</password>
  </query>
  <error code="500" type="wait">
   <internal-server-error xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
  </error>
 </iq>

【问题讨论】:

    标签: objective-c xmpp xmppframework


    【解决方案1】:

    JID 可以有两种形式:

    user@example.com
    example.com
    

    如果它们包含@,那么@ 之前的部分就是用户部分。但是用户部分也可以被省略,就像在第二个例子中一样。这通常用于直接寻址主机。

    self.xmppStream.myJID = [XMPPJID jidWithString:@"efeuser"];
    

    这将创建一个没有用户部分的新 JID efeuser。这意味着:

    NSLog(@"%@",self.xmppStream.myJID.user);
    

    正确打印(null),因为没有用户部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-31
      • 1970-01-01
      • 2020-01-12
      • 1970-01-01
      • 1970-01-01
      • 2022-06-18
      相关资源
      最近更新 更多