我正在尝试在 nimbuzz 协议中获取更多信息,并可能找到任何开源实现。
http://en.wikipedia.org/wiki/Nimbuzz_IM
似乎 nimbuzz 允许在不同协议的用户之间进行连接,但它为 nimbuzz 用户之间的通信提供了自己的网络
编辑
的,我已经能够弄清楚 nimbuzz 聊天协议是 XMPP,我冒险尝试连接和聊天像agsXMPP这样的 XMPP 客户端库。
到目前为止,我一直无法连接或做任何事情,我的代码到目前为止看起来像:
XmppClientConnection xmpp;
void onLoginHandler(object o)
{
xmpp.Send(new Message("someFriend@nimbuzz.com", MessageType.chat, "hello world!"));
}
void errorHandler(object sender, Element e)
{
}
void exceptionHandler(object sender, Exception ex)
{
}
void rosterStartHandler(object sender)
{
}
void rosterEndHandler(object sender)
{
}
void rosterItemHandler(object sender, RosterItem item)
{
}
.....然后尝试打开
xmpp = new XmppClientConnection("nimbuzz.com");
xmpp.AutoRoster = true;
xmpp.ConnectServer = "o.nimbuzz.com";
xmpp.OnLogin += onLoginHandler;
xmpp.OnAuthError += errorHandler;
xmpp.OnError += exceptionHandler;
xmpp.OnRosterStart += rosterStartHandler;
xmpp.OnRosterItem += rosterItemHandler;
xmpp.OnRosterEnd += rosterEndHandler;
xmpp.Open("myaccount@nimbuzz.com", "mypassword");
但是,在我使用以下元素输入 OnAuthError 之后:
<not-authorized xmlns="urn:ietf:params:xml:ns:xmpp-sasl" />
我试图用wireshark在nimbuzz登录时嗅探数据包,尽管有一些握手的XMPP数据包,其余的似乎是加密的,这就是我能够嗅到的:
<stream:stream to='nimbuzz.com' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0' xml:lang='en'>
server - 195.211.49.6 (o.nimbuzz.com)
<stream:features>
<starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"/>
<compression xmlns="http://jabber.org/features/compress">
<method>zlib</method>
</compression>
<mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl">
<mechanism>PLAIN</mechanism>
<mechanism>DIGEST-MD5</mechanism>
</mechanisms>
<register xmlns="http://jabber.org/features/iq-register"/>
</stream:features>
client - <starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"/>
server - <proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls"/>
询问是否有人能够找到正确的方法来使用开源 XMPP 库连接到 nimbuzz 聊天并在此处发布解决方案,我将奖励问题奖励。(如果问题花费的时间超过剩下的 4 天,我可能会增加赏金)