【问题标题】:How to get status code from websocket upgrade request with socket.io client如何使用 socket.io 客户端从 websocket 升级请求中获取状态码
【发布时间】:2021-07-09 09:10:18
【问题描述】:

我在 node.js 中重写了升级事件监听器,如下所示:

server.on('upgrade', (req, socket, head) => {
  socket.write('HTTP/1.1 401 Unauthorized\r\n\r\n');
  socket.destroy();

  return;
}

如何从客户端获取响应代码 401(我使用 socket.io-client)?

错误响应只显示Error: websocket error

socket.on('connect_error', (error) => {
  console.log(error);
});

【问题讨论】:

标签: javascript node.js websocket socket.io


【解决方案1】:

socket.on('error', function(err) { 控制台日志(错误); });

【讨论】:

  • error 事件仅在 io 对象上,socket.io.on("error", (error) => { //... }); 并且它也显示了注意。
【解决方案2】:

socket.write / socket.destroy 来自其他 websocket 库 (https://github.com/websockets/ws) 而不是 socket.io。

使用 socket.io-client 你不能用这个监听器监听断开连接:

socket.on("disconnect", (reason) => {
  // ...
});

在服务器端,您可以像这样断开连接

socket.disconnect()

【讨论】:

  • 套接字是来自节点Net模块的net.Socket,检查doc
猜你喜欢
  • 2013-05-07
  • 2015-02-04
  • 1970-01-01
  • 1970-01-01
  • 2011-11-23
  • 1970-01-01
  • 2015-06-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多