Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 创建基本Socket.IO Websocket服务器_Node.js_Socket.io - Fatal编程技术网

Node.js 创建基本Socket.IO Websocket服务器

Node.js 创建基本Socket.IO Websocket服务器,node.js,socket.io,Node.js,Socket.io,我正在用socket.io编写一个websocket服务器,但不知道为什么它不工作 这项工作: 这将运行,但我的客户端无法连接: 来源:Book Professional Node.js 该客户端是一个Javascript基本web浏览器客户端,可与任何服务器一起使用,因此请忽略客户端问题。尝试将传输显式设置为仅限websocket,因为socket.io具有长轮询和闪存套接字的回退选项 var io = require('socket.io')(8100, {transports: ['web

我正在用socket.io编写一个websocket服务器,但不知道为什么它不工作

这项工作:

这将运行,但我的客户端无法连接:

来源:Book Professional Node.js


该客户端是一个Javascript基本web浏览器客户端,可与任何服务器一起使用,因此请忽略客户端问题。

尝试将传输显式设置为仅限websocket,因为socket.io具有长轮询和闪存套接字的回退选项

var io = require('socket.io')(8100, {transports: ['websocket']})

io.sockets.on('connection', function (socket) {
    console.log('New Connection');
});

客户端是一个Javascript基本web浏览器客户端,可以与任何服务器一起工作啊,如果生活真的那么简单的话。Socket.io提供自己的客户端。我现在不记得细节了,但连接事件可能不是在连接时触发的,而是在客户端发送一些数据时触发的。这样做是为了在不同的推送策略之间统一事件。如果我不能将自己的websocket客户端与socket.io一起使用,那么这个库对于我来说绝对是过时的。这取决于你。不管怎样,您已经问了这个问题,所以我的问题是:您是否使用client socket.io提供的客户端进行了尝试?我可能错了,问题可能出在其他地方。请尝试显式地将传输仅设置为websocket,因为socket.io有回退。@JackM。socket.io不是WebSocket服务器。它是基于http和WebSockets的组合构建的更高级别协议,利用多个传输,其中一个是WebSockets。你必须使用socket.io客户端。它们适用于许多平台,因为这是一个有良好文档记录的协议。我觉得问题在于代码,因为当我的客户端尝试连接到错误的端口号时,你可能会感觉到它保持了一秒钟。如果您尝试连接到正确的端口8100,它会立即断开连接-状态3而状态1没有任何理由不使用WS?我不知道如何使用WS扩展多个服务器实例,也不确定它在代理/负载平衡器后是否工作良好。使用socket.io进行扩展要容易得多,因为您只需将其插入redis即可。不使用socket.io客户端的原因是什么?该客户端是Windows/Mac应用程序,而不是网页。
var io = require('socket.io').listen(8100);

io.sockets.on('connection', function (socket) {
    console.log('New Connection');
});
var io = require('socket.io')(8100, {transports: ['websocket']})

io.sockets.on('connection', function (socket) {
    console.log('New Connection');
});