2017-03-01 92 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