Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.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客户端没有';无法在请求中设置sid_Node.js_Socket.io - Fatal编程技术网

Node.js socket.io客户端没有';无法在请求中设置sid

Node.js socket.io客户端没有';无法在请求中设置sid,node.js,socket.io,Node.js,Socket.io,我正在尝试构建一个nodejs脚本来与socket.io服务器通信 const io = require('socket.io-client'); const socket = io('http://192.168.144.249'); socket.on('connect', () => { console.log('connected'); }) 使用wireshark跟踪流量,我可以看到以下内容: 因此,浏览器会在响应主体和cookie中向我发送一个sid。 不幸的是,我的

我正在尝试构建一个nodejs脚本来与socket.io服务器通信

const io = require('socket.io-client');
const socket = io('http://192.168.144.249');

socket.on('connect', () => {
  console.log('connected');
})
使用wireshark跟踪流量,我可以看到以下内容:

因此,浏览器会在响应主体和cookie中向我发送一个sid。 不幸的是,我的以下请求不包括此sid,我收到了
400错误请求
错误:

当我尝试从浏览器窗口构建同一个客户端时,我可以看到此cookie确实设置为cookie和查询参数:

我不想使用浏览器,我想使用独立节点脚本。据我所知,响应的解析和会话id的包含应该由
socket.io客户端自动完成。我错了吗?如果是,我如何截获此事件,以便发送带有以下请求的sid

在使用自定义cookie或自定义查询参数创建socket.io客户端时,我是否应该首先向服务器发出一个简单的http请求,从服务器获取sid,然后将其添加到socket.io客户端


我还可以看到,节点独立脚本使用的是engine.io版本4(
EIO=4
,在GET请求中),而浏览器使用的是engine.io版本3,但收到的响应似乎完全相同,因此我并不认为这是阻止脚本自动完成与服务器握手的原因。

我错了。这确实是一个协议不匹配的问题

我能够使用
socket.io使脚本正常工作-client@1.0.2
。安装时请使用:

npm安装socket.io-client@1.0.2