XMPP JID 似乎总是为空
Posted
技术标签:
【中文标题】XMPP JID 似乎总是为空【英文标题】:XMPP JID seems like always null 【发布时间】: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>
【问题讨论】:
【参考方案1】:JID 可以有两种形式:
user@example.com
example.com
如果它们包含@
,那么@
之前的部分就是用户部分。但是用户部分也可以被省略,就像在第二个例子中一样。这通常用于直接寻址主机。
self.xmppStream.myJID = [XMPPJID jidWithString:@"efeuser"];
这将创建一个没有用户部分的新 JID efeuser
。这意味着:
NSLog(@"%@",self.xmppStream.myJID.user);
正确打印(null)
,因为没有用户部分。
【讨论】:
以上是关于XMPP JID 似乎总是为空的主要内容,如果未能解决你的问题,请参考以下文章