我正在尝试使用 smack 来连接到 Microsoft 的 Xmpp Msn api。去年 4 月,他们对其实现进行了更改,强制客户端实现“see-other-host”xmpp 规范。当我尝试连接到“xmpp.messenger.live.com”时,我得到
stream:error (see-other-host) at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:260) at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:43) at org.jivesoftware。 smack.PacketReader$1.run(PacketReader.java:70)
我正在调试,我可以看到原始收到的数据包
<stream:stream from="messenger.live.com" version="1.0" id="59784" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams">
<stream:features xmlns:stream="http://etherx.jabber.org/streams"><starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"><required /></starttls></stream:features>
<proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls" />
<stream:stream from="messenger.live.com" version="1.0" id="59785" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams">
<stream:error xmlns:stream="http://etherx.jabber.org/streams"><see-other-host xmlns="urn:ietf:params:xml:ns:xmpp-streams">BY2MSG3020517.gateway.edge.messenge r.live.com</see-other-host></stream:error>
但我无法找到一种方法来拦截和处理该重定向。有人做过吗?任何帮助,将不胜感激。谢谢。
顺便说一句,我已经在 smack 论坛上发布了这个但没有得到回复,希望这不被认为是交叉发布。