You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Socket.io客户端提示‘Invalid namespace’错误排查求助

解决Socket.io "Invalid namespace" 错误

核心问题是服务端代码执行顺序错误:在创建Socket.io Server实例之前,就尝试通过io对象注册命名空间/绑定连接事件,此时io尚未初始化,导致命名空间未被正确注册,客户端连接时触发错误。

修正后的服务端代码

// server
const {Server} = require("socket.io"),
  http = require('http');
const httpserver = http.createServer();

// 先创建Socket.io Server实例
const io = new Server(httpserver, {
  cors: {origin: "*", methods: ["GET", "POST"]}
});

// 再注册命名空间并监听连接
io.of("device").on("connection", async (socket) => {
  socket.on("error", (err) => {
    console.log(err.message);
  });
  socket.on('disconnect', function () {
    console.log('socket disconnect');
  })
});

httpserver.listen(3001, () => {
  console.log('listening on *:3001');
});

关键说明

  • 原代码中io.of("device").on("connection")写在了const io = new Server(...)之前,此时io变量未被赋值,命名空间注册逻辑根本没有生效。
  • 客户端代码无需修改,保持现有写法即可:
// client
import {io, Socket} from "socket.io-client";

const socket = io('ws://127.0.0.1:3001/device', {
  transports: ["websocket"]
});

socket.on("connect_error", (err) => {
  console.log(`connect_error due to ${err.message}`);
});

内容的提问来源于stack exchange,提问作者user824624

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 16:20:33