подключение к чату nimbuzz с использованием библиотеки xmpp opensource - PullRequest
0 голосов
/ 16 марта 2012

Я пытаюсь получить больше информации в протоколе nimbuzz и, возможно, найти любые реализации с открытым исходным кодом.

http://en.wikipedia.org/wiki/Nimbuzz_IM

похоже, что nimbuzz позволяет устанавливать соединение между пользователями разных протоколов, НО предоставляет собственную сеть для связи между пользователями nimbuzz

EDIT

из, я смог выяснить, что протокол чата nimbuzz - XMPP, я попытался подключиться и пообщаться с клиентской библиотекой XMPP, такой как agsXMPP .

Пока я не могу подключиться или что-то сделать, мой код выглядит так:

        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" />

Я пытался прослушать пакеты при входе в nimbuzz с помощью wireshark, и, несмотря на некоторые пакеты 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"/>

Вопрос Если кто-нибудь сможет найти правильный способ подключения к чату nimbuzz с библиотекой XMPP с открытым исходным кодом и опубликовать решение здесь, я получу награду за вопрос. (Я могу увеличить вознаграждение, если проблема займет у меня больше, чем оставшиеся 4 дня)

Ответы [ 3 ]

1 голос
/ 26 марта 2012

в xmpp. После этого вы должны передать имя пользователя и пароль.

Ваше имя пользователя myaccount, а не myaccount@nimbuzz.com. myaccount@nimbuzz.com - это ваш Jid (Jabber Id).

0 голосов
/ 29 ноября 2015

// xmpp.ConnectServer = "o.nimbuzz.com";

Вы должны использовать openfire.nimbuzz.com для подключения nimbuzz

&

Добавьте это и попробуйте ---->

ConnectionConfiguration config = new ConnectionConfiguration(URLConstants.XMPP_HOST, URLConstants.XMPP_PORT);
        config.setSASLAuthenticationEnabled(false);
 config.setSASLAuthenticationEnabled(false);
 config.setSecurityMode(ConnectionConfiguration.SecurityMode.enabled);
 config.setCompressionEnabled(false);
0 голосов
/ 24 марта 2012

Хорошо, после сеанса WireShark, кажется, что nimbuzz на самом деле является протоколом xmpp

...