最新消息:服务器现已从linode换到fzhost.net,且主题已从retina 0.2换为大前端D8

【已解决】XMPP出错:code 400 jid-malformed xmlns urn:ietf:params:xml:ns:xmpp-stanzas

XMPP crifan 10浏览 0评论

折腾:

[已解决]Swift中实现XMPP的讨论组群聊功能

期间,

改为:

当前测试用户2,先发送Presence到服务器:

<presence 
  from="user-e448856d-eff7-4e05-a391-fd6179cb7382@jiandao.im/user-e448856d-eff7-4e05-a391-fd6179cb7382" 
  to="group-26e98e34-3f49-4914-8acd-34354bf23b03@conference.jiandao.im">
  <x xmlns="http://jabber.org/protocol/muc"/>
</presence>

但是还是返回说到出了错的presence:

<presence 
  from="group-26e98e34-3f49-4914-8acd-34354bf23b03@conference.jiandao.im" 
  to="user-e448856d-eff7-4e05-a391-fd6179cb7382@jiandao.im/5a87e0fa" 
  type="error" 
  xmlns="jabber:client">
  <x xmlns="http://jabber.org/protocol/muc"/>
  <error 
    code="400" 
    type="modify">
    <jid-malformed xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
  </error>
</presence>

【解决过程】

搜:

xmpp error code 400 type modify jid-malformed

xmpp MUC error code 400 type modify jid-malformed

Bug 33988 – Attempts to join rooms using illegal JIDs

jid-malformed error in XMPP component

后来调试又很诡异:

发送了给group加了组名的presence:

<presence from="user-e448856d-eff7-4e05-a391-fd6179cb7382@jiandao.im/user-e448856d-eff7-4e05-a391-fd6179cb7382" to="group-26e98e34-3f49-4914-8acd-34354bf23b03@conference.jiandao.im/All"><x xmlns="http://jabber.org/protocol/muc"/></presence>

但是却出了406的错(而不是之前的400错误了):

<presence xmlns="jabber:client" from="group-26e98e34-3f49-4914-8acd-34354bf23b03@conference.jiandao.im/All" to="user-e448856d-eff7-4e05-a391-fd6179cb7382@jiandao.im/263985f" type="error"><x xmlns="http://jabber.org/protocol/muc"/><error code="406" type="modify"><not-acceptable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error></presence>

最后改为:

即:

1.id是可以不用加的

2.group后面不是group的nickname,而是用户的userId

发送:

<presence 
  from="user-e448856d-eff7-4e05-a391-fd6179cb7382@jiandao.im" 
  to="group-7f1ad5cd-8f18-4c5e-9fe4-604c3e5b1ab8@conference.jiandao.im/user-e448856d-eff7-4e05-a391-fd6179cb7382">
  <x xmlns="http://jabber.org/protocol/muc"/>
</presence>

才得到正确回复:

<presence 
  xmlns="jabber:client" 
  from="group-7f1ad5cd-8f18-4c5e-9fe4-604c3e5b1ab8@conference.jiandao.im/user-e448856d-eff7-4e05-a391-fd6179cb7382" 
  to="user-e448856d-eff7-4e05-a391-fd6179cb7382@jiandao.im/e8dbe2ce">
  <x xmlns="http://jabber.org/protocol/muc#user">
    <item 
      jid="user-e448856d-eff7-4e05-a391-fd6179cb7382@jiandao.im/e8dbe2ce" 
      affiliation="member" 
      role="participant"/>
</x>
</presence>

转载请注明:在路上 » 【已解决】XMPP出错:code 400 jid-malformed xmlns urn:ietf:params:xml:ns:xmpp-stanzas

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
55 queries in 0.562 seconds, using 12.56MB memory