Node.js Socket.IO无法完全工作
我运行一个独立的服务器,它监听端口5000。当我通过Netcat或Telnet连接到它时,应用程序不会在终端上打印任何内容,但在Netcat/Telnet应用程序屏幕上,它显示连接已建立Node.js Socket.IO无法完全工作,node.js,sockets,socket.io,server,Node.js,Sockets,Socket.io,Server,我运行一个独立的服务器,它监听端口5000。当我通过Netcat或Telnet连接到它时,应用程序不会在终端上打印任何内容,但在Netcat/Telnet应用程序屏幕上,它显示连接已建立 var io = require('socket.io')(); io.on('connection', function(socket){ console.log('Socket connection established'); }); io.listen(5000); console.log('Li
var io = require('socket.io')();
io.on('connection', function(socket){
console.log('Socket connection established');
});
io.listen(5000);
console.log('Listening to port 50000');
io是WebSocket的库 当您连接到telnet时,它表示您已连接。这足以知道您的服务器正在侦听 如果您想看到它的运行,您必须使用socket.io客户端连接到它。为此,只需在html文件中包含
/socket.io/socket.io.js
这足以建立连接
socket = io.connect('http://localhost:5000');
未显示
console.log
的原因是websocket未连接。只建立了tcp/ip连接,这是telnet告诉您的 这意味着它可以工作。否?@smit这意味着,如果它工作,为什么它不在终端上打印任何内容?Didconsole.log('listing to port 50000')代码>打印?@Smit是,它会打印,但不会打印“已建立套接字连接”。这就是我的问题。你能分享你的整个服务器.js
文件吗?包含require
sSocket.io不是WebSocket的库。它是一个用于实时双向通信的库,支持通过多个传输进行通信,默认情况下不使用WebSocket,而是使用XHR Longpolling。WebSockets只有在exchange双方都支持并且可以成功升级到的情况下才能使用。@LorenzMeyer谢谢,您的解决方案有效。现在我知道我犯了什么错误。@peteb你说得对,“socket.io不是websockets的库”。它用于建立与服务器的连续连接,允许服务器将事件推送到客户端。我不同意“默认情况下不使用WebSocket”。如果浏览器支持websockets,它将使用websockets,如果websockets不可用,它将使用xhr longpolling等其他技术。@LorenzMeyer说它使用longpolling是不正确的。它从longpolling开始,如果可能,将升级到websockets。