2012-03-31 19 views
5

Sto lavorando per far funzionare node-xmpp con un server jabber che abbiamo qui in casa. Sono riuscito a farlo funzionare correttamente con talk.google.com, e posso collegarmi al nostro server interno con adium o ichat bene.impossibile connettersi al server xmpp utilizzando node-xmpp

  • Nodo v0.6.14
  • CentOS 6,2/2.6.32
  • nodo-xmpp 0.3.2
  • OpenSSL 1.0.0

codice connect

var j = new xmpp.Client({ 
    jid : '[email protected]', 
    password : 'pass', 
    host : 'chat.domain' 
}); 

Dopo aver tracciato il codice, sembra che si blocchi dopo aver tentato di aggiornare il conn erezione per una connessione sicura. Ciò si verifica in starttls.js nella funzione starttls.

L'evento pair.on ('secure') non viene mai chiamato e anche dopo aver stampato una coppia dopo un settaggio, non è ancora stato autorizzato. A questo punto non vedo alcun dato dentro o fuori.

Dopo molto tempo seduto lì (diversi minites) esso stampa un errore che assomiglia a questo

throw arguments[1]; // Unhandled 'error' event 
     ^
Error: 139644497663968:error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error:s23_clnt.c:674: 

    at CleartextStream._pusher (tls.js:508:24) 
    at CleartextStream._push (tls.js:334:25) 
    at SecurePair.cycle (tls.js:734:20) 
    at EncryptedStream.write (tls.js:130:13) 
    at Socket.ondata (stream.js:38:26) 
    at Socket.emit (events.js:67:17) 
    at TCP.onread (net.js:367:14) 

Il server utilizza un self firmato cert se quello che conta.

Qualche idea?

Grazie!

+1

Quale software server stai utilizzando? (Vado fuori dal mio collo e indovina ... Openfire?) – MattJ

+0

sì, openfire. –

+0

Hai mai funzionato? Stiamo riscontrando lo stesso problema con openfire e l'ultima versione di node + node_xmpp. – dustyburwell

risposta

0

Sembra che tu stia inviando un handshake TLS quando il server non lo prevede, quindi il server non sta rimandando l'handshake.

Una possibilità è che si sta parlando di TLS vecchio stile (handshake-first) a un server che implementa start-TLS. Nel tuo codice reale, stai impostando il parametro legacySSL? Sei sicuro di parlare con un server XMPP sulla casella di destinazione?

A wireshark traccia ci avrebbe dato i dati per essere in grado di dire per certo.

0

Si è verificato lo stesso problema: la connessione si blocca durante il tentativo di eseguire un handshake TLS con una particolare installazione del server Xfire di Openfire (anche se altri hanno funzionato correttamente).

Dopo aver quasi perso la testa, ho finito per modificare starttls.js fornito con node-xmpp per usare tls.connect() e forzare SSLv3 e con mia sorpresa ha funzionato.

Gist qui: https://gist.github.com/jamescoletti/6591173

Spero che questo è utile a qualcuno.

+0

Questo elenco è stato rimosso. È possibile ripristinare? – user1074891

Problemi correlati