我在我的node.js安装上成功运行了socket.io。
info - socket.io started
控制台显示它运行正常,但是一旦客户端(浏览器)连接:
socket = io.connect('<my host>:8000');
控制台正在发出错误:
crypto.js:123
return new Hash(hash);
^
TypeError: undefined is not a function
at Object.createHash (crypto.js:123:10)
at WebSocket.onSocketConnect (/node_modules/socket.io/lib/transports/websocket/hybi-16.js:120:23)
at WebSocket.handleRequest (/node_modules/socket.io/lib/transport.js:71:10)
at WebSocket.Transport (/node_modules/socket.io/lib/transport.js:31:8)
at new WebSocket (/node_modules/socket.io/lib/transports/websocket/hybi-16.js:59:13)
at new WebSocket (/node_modules/socket.io/lib/transports/websocket.js:31:17)
at Manager.handleClient (/node_modules/socket.io/lib/manager.js:661:19)
at Manager.handleUpgrade (/node_modules/socket.io/lib/manager.js:618:8)
at Server.<anonymous> (/node_modules/socket.io/lib/manager.js:123:10)
at Server.emit (events.js:88:20)
任何人都可以理解这可能意味着什么吗?
我的代码在本地计算机上运行正常,只有在将其移动到生产服务器时才会发生此错误。
答案 0 :(得分:0)
事实证明这是因为Node安装了选项--without-ssl。这意味着它不会安装socket.it所需的任何加密内容。我安装了openssl,重新安装了Node,并修复了它:)