2012-03-31 41 views
5

Im làm việc để nhận node-xmpp làm việc với máy chủ jabber mà chúng tôi có trong nhà tại đây. Tôi đã có thể làm cho nó hoạt động tốt với Talk.google.com, và tôi có thể kết nối với máy chủ nội bộ của chúng tôi với adium hoặc ichat tốt.không thể kết nối với máy chủ xmpp bằng cách sử dụng nút-xmpp

  • Node v0.6.14
  • CentOS 6,2/2.6.32
  • nút-XMPP 0.3.2
  • OpenSSL 1.0.0

đang kết nối

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

Sau khi truy tìm thông qua mã, có vẻ như nó bị kẹt ngay sau khi nó cố gắng nâng cấp ection đến một kết nối an toàn. Điều này xảy ra trong starttls.js trong hàm starttls.

Cặp .on ('an toàn') sự kiện không bao giờ được gọi và thậm chí sau khi tôi in ra cặp sau khi kết thúc, nó vẫn không xuất hiện để được ủy quyền. Tại thời điểm này tôi không thấy bất kỳ dữ liệu trong hoặc ngoài.

Sau một thời gian dài ngồi đó (vài minites) nó in ra một lỗi mà trông như thế này

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) 

Các máy chủ đang sử dụng một ký tự cert nếu có vấn đề.

Bất kỳ ý tưởng nào?

Cảm ơn!

+1

Bạn đang sử dụng phần mềm máy chủ nào? (Tôi sẽ dính cổ ra và đoán ... Openfire?) – MattJ

+0

yeah, openfire. –

+0

Bạn đã bao giờ làm việc này chưa? Chúng tôi đang gặp vấn đề tương tự với openfire và phiên bản mới nhất của nút + node_xmpp. – dustyburwell

Trả lời

0

Có vẻ như bạn đang gửi một cái bắt tay TLS khi máy chủ không mong đợi nó, vì vậy máy chủ không gửi lại cái bắt tay.

Một khả năng là bạn đang nói TLS kiểu cũ (bắt tay trước) với máy chủ triển khai TLS bắt đầu. Trong mã thực của bạn, bạn có đang đặt tham số legacySSL không? Bạn có chắc là bạn đang nói chuyện với máy chủ XMPP trên hộp mục tiêu không?

A wireshark theo dõi sẽ cung cấp cho chúng tôi dữ liệu để có thể biết chắc chắn.

0

Tôi đã gặp sự cố tương tự: kết nối bị treo trong khi cố gắng thực hiện bắt tay TLS với một bản cài đặt máy chủ Openfire XMPP cụ thể (mặc dù những người khác hoạt động tốt).

Sau khi gần như mất trí, tôi đã sửa đổi starttls.js đi kèm với nút-xmpp để sử dụng tls.connect() và buộc SSLv3 và tôi ngạc nhiên khi nó hoạt động.

Gist đây: https://gist.github.com/jamescoletti/6591173

Hy vọng điều này hữu ích cho người khác.

+0

Gist này đã bị xóa. Có thể khôi phục không? – user1074891

Các vấn đề liên quan