我尝试了什么:我去xmpp.org寻找绑定资源的正确xml节(http://xmpp.org/extensions/xep-0206.html#preconditions-sasl),但看起来很相似。
可能的答案:我在身份验证后没有重新启动流,这可能是导致此错误的原因吗?
可能的答案:我没有得到xmpp:restartLogic属性来响应初始数据包?这可能是导致400错误的原因(可能是Ejabbered服务器不支持重启)?
怀疑:任何人都知道如何在Ejabberd中启用restartlogic或默认情况下是否启用?
我的日志如下:
Stanza to read is = body xmlns='http://jabber.org/protocol/httpbind' sid='8d96d01bb87f526e78b0f0b620dd1c94edd172ee' wait='30' requests='2' inactivity='30' maxpause='120' polling='2' ver='1.8' from='someserver.com' secure='true' authid='2817580747' xmlns:xmpp='urn:xmpp:xbosh' xmlns:stream='http://etherx.jabber.org/streams' xmpp:version='1.0' Stanza to read is = stream:features xmlns:stream='http://etherx.jabber.org/streams' Stanza to read is = mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl' Stanza to read is = mechanism Stanza to read is = c xmlns='http://jabber.org/protocol/caps' hash='sha-1' node='http://www.process-one.net/en/ejabberd/' ver='U5DC02T7iwEqfov5b3KpIVgA5+I='/ Stanza to read is = register xmlns='http://jabber.org/features/iq-register'/ Session creation response received: body secure=true requests=2 inactivity=30 authid=2817580747 sid=8d96d01bb87f526e78b0f0b620dd1c94edd172ee polling=2 xmlns=http://jabber.org/protocol/httpbind wait=30 xmpp=urn:xmpp:xbosh ver=1.8 version=1.0 from=someserver.com stream=http://etherx.jabber.org/streams maxpause=120 == features stream=http://etherx.jabber.org/streams == mechanisms xmlns=urn:ietf:params:xml:ns:xmpp-sasl == mechanism == PLAIN mechanism == DIGEST-MD5 mechanism == SCRAM-SHA-1 c ver=U5DC02T7iwEqfov5b3KpIVgA5+I= node=http://www.process-one.net/en/ejabberd/ hash=sha-1 xmlns=http://jabber.org/protocol/caps == register xmlns=http://jabber.org/features/iq-register == Authenticating: body secure=true requests=2 inactivity=30 authid=2817580747 sid=8d96d01bb87f526e78b0f0b620dd1c94edd172ee polling=2 xmlns=http://jabber.org/protocol/httpbind wait=30 xmpp=urn:xmpp:xbosh ver=1.8 version=1.0 from=someserver.com stream=http://etherx.jabber.org/streams maxpause=120 == features stream=http://etherx.jabber.org/streams == mechanisms xmlns=urn:ietf:params:xml:ns:xmpp-sasl == mechanism == PLAIN mechanism == DIGEST-MD5 mechanism == SCRAM-SHA-1 c ver=U5DC02T7iwEqfov5b3KpIVgA5+I= node=http://www.process-one.net/en/ejabberd/ hash=sha-1 xmlns=http://jabber.org/protocol/caps == register xmlns=http://jabber.org/features/iq-register == Using plain authorization writtenToAir [0]: AE1haGlAdGVzdC5yYXBpZHNvZnR0ZWNobm9sb2d5LmNvbQBtYWhp Starting PLAIN authorization Stanza to read is = body xmlns='http://jabber.org/protocol/httpbind' Stanza to read is = success xmlns='urn:ietf:params:xml:ns:xmpp-sasl'/ writtenToAir [0]: Resource Binding resource Stanza to read is = body type='terminate' condition='remote-stream-error' xmlns='http://jabber.org/protocol/httpbind' xmlns:stream='http://etherx.jabber.org/streams' Stanza to read is = stream:error Stanza to read is = xml-not-well-formed xmlns='urn:ietf:params:xml:ns:xmpp-streams'/