将 Socket-Io 与反应一起使用

Using Socket-Io with react

我正在尝试将名称空间与 socket-io 服务器和反应客户端一起使用。

客户

    const [socket, setSocket] = useState(null);

    useEffect(() => {
        const testSocket = io(`http://localhost:3001/poker`);
        console.log(testSocket)
        setSocket(testSocket);
        return () => testSocket.close();
    }, [setSocket]);

服务器

    io.on("connection", (socket) => {
        console.log('connection');
    });

    const test = io.of("/test");

    test.on('connection', socket => {
        console.log("here2");
    });

当我执行此操作时,客户端 returns 上的 console.log() Object { connected: false, disconnected: true, receiveBuffer: [], sendBuffer: [], ids: 0, acks: {}, flags: {}, io: {…}, nsp: "/test", subs: (4) […] } 在服务器端,它每隔几秒就会说“连接”,但它永远不会触发命名空间。 浏览器每隔几秒发送一次的请求有一个轮询传输而不是一个套接字,所以它可能只是没有连接,但我不明白为什么,有什么想法吗?

在客户端设置 {transports: ["websocket"]} 似乎已经成功了。