2017-03-01 90 views
0

我运行一个独立的服务器,它监听端口5000.当我通过Netcat或Telnet连接到它时,该应用程序不会在终端上打印任何内容,但在Netcat/Telnet应用程序上屏幕显示连接已建立。Node.js Socket.IO不能正常工作

var io = require('socket.io')(); 
io.on('connection', function(socket){ 
console.log('Socket connection established'); 
}); 
io.listen(5000); 
console.log('Listening to port 50000'); 
+0

这意味着它的工作。没有? – Smit

+0

@smit这意味着,如果它工作,它为什么不在终端上打印任何内容? –

+0

'console.log('Listening to port 50000');'print? – Smit

回答

2

Socket.io是一个用于websockets的库。

当你使用telnet连接时,它表示你已连接。这足以知道您的服务器正在监听。

如果你想看到它的行动,你必须使用socket.io客户端连接到它。为此,只需在文件中包含/socket.io/socket.io.js

这足以建立连接。

socket = io.connect('http://localhost:5000'); 

原因,为什么console.log不显示是websocket没有连接。只有tcp/ip连接建立,这是telnet告诉你的。

+0

反对票的原因是什么? –

+0

我没有投票给你。我正在检查您的解决方案,谢谢。 –

+0

Socket.io不是WebSockets的库。它是一个实时双向通信库,支持多个传输通信,默认情况下**不使用WebSockets,而是使用XHR Longpolling。只有在交换双方都支持WebSocket的情况下才能使用WebSocket,并且可以成功升级到。 – peteb