2012-03-31 22 views
5

Ich arbeite daran, node-xmpp mit einem Jabber-Server zu betreiben, den wir hier haben. Ich konnte es mit talk.google.com in Ordnung bringen, und ich kann eine Verbindung zu unserem internen Server mit adium oder ichat ganz gut herstellen.keine Verbindung zum xmpp-Server mit node-xmpp herstellen

  • Node v0.6.14
  • CentOS 6,2/2.6.32
  • node-xmpp 0.3.2
  • OpenSSL 1.0.0

connect Code

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

Nach dem Durchlaufen des Codes scheint es direkt nach dem Versuch, den Conn zu aktualisieren, stecken zu bleiben Verbindung zu einer sicheren Verbindung. Dies geschieht in starttls.js in der starttls Funktion.

Das pair.on ('sichere') Ereignis wird nie aufgerufen, und auch nachdem ich paar nach einem settimeout ausdrucken, scheint es immer noch nicht autorisiert zu sein. An diesem Punkt sehe ich keine Daten rein oder raus.

Nach langer Zeit dort sitzen (mehrere minites) druckt er einen Fehler aus, dass der Server wie diese

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) 

sieht ein selbst signiertes Zertifikat zu verwenden, wenn es ankommt.

Irgendwelche Ideen?

Danke!

+1

Welche Serversoftware verwenden Sie? (Ich werde meinen Hals ausstrecken und raten ... Openfire?) – MattJ

+0

ja, openfire. –

+0

Hast du das jemals funktioniert? Wir haben das gleiche Problem mit openfire und der neuesten Version von node + node_xmpp. – dustyburwell

Antwort

0

Es sieht so aus, als würden Sie einen TLS-Handshake senden, wenn der Server dies nicht erwartet, daher sendet der Server seinen Handshake nicht zurück.

Eine Möglichkeit ist, dass Sie TLS im alten Stil (Handshake-first) mit einem Server sprechen, der Start-TLS implementiert. Setzen Sie in Ihrem echten Code den Parameter legacySSL? Sind Sie sicher, dass Sie mit einem XMPP-Server auf der Zielbox sprechen?

Ein wireshark Trace würde uns die Daten geben, um sicher zu sein.

0

Ich hatte das gleiche Problem: Verbindung hängt beim Versuch, einen TLS-Handshake mit einer bestimmten Openfire XMPP Server-Installation durchzuführen (obwohl andere gut funktionierte).

Nachdem ich fast den Verstand verloren hatte, änderte ich die Datei starttls.js, die mit node-xmpp ausgeliefert wurde, um tls.connect() zu verwenden und SSLv3 zu erzwingen und zu meiner Überraschung funktionierte es.

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

Hoffnung dies ist nützlich, um jemanden.

+0

Dieser Text wurde entfernt. Ist es möglich, wiederherzustellen? – user1074891

Verwandte Themen