【发布时间】:2012-04-14 16:13:10
【问题描述】:
我正在努力让 node-xmpp 与我们内部的 jabber 服务器一起工作。我能够让它在talk.google.com 上正常工作,并且我可以用adium 或ichat 连接到我们的内部服务器就好了。
- 节点 v0.6.14
- CentOS 6.2 / 2.6.32
- node-xmpp 0.3.2
- OpenSSL 1.0.0
连接代码
var j = new xmpp.Client({
jid : 'user@domain',
password : 'pass',
host : 'chat.domain'
});
在跟踪代码后,它似乎在尝试将连接升级到安全连接后立即卡住了。这发生在 starttls 函数的 starttls.js 中。
永远不会调用 pair.on('secure') 事件,即使在设置超时后我打印出 pair 之后,它似乎仍然没有被授权。在这一点上,我没有看到任何数据输入或输出。
在那里坐了很长时间(几次)后,它会打印出一个看起来像这样的错误
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)
如果这很重要,服务器正在使用自签名证书。
有什么想法吗?
谢谢!
【问题讨论】:
-
您使用的是什么服务器软件? (我会伸出脖子猜猜...... Openfire?)
-
你有没有得到这个工作?我们在使用 openfire 和最新版本的 node + node_xmpp 时遇到了同样的问题。
标签: node.js openssl xmpp openfire