Использование Socket-Io с react

#reactjs #websocket #socket.io

Вопрос:

Я пытаюсь использовать пространства имен с сервером ввода-вывода сокетов и клиентом react.

Клиент

     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");
    });
 

Когда я это делаю, console.log() на клиенте возвращает
Object { connected: false, disconnected: true, receiveBuffer: [], sendBuffer: [], ids: 0, acks: {}, flags: {}, io: {…}, nsp: "/test", subs: (4) […] }
и на стороне сервера он говорит «подключение» каждые несколько секунд, но никогда не запускает пространство имен.
Запросы, которые браузер отправляет каждые несколько секунд, имеют транспорт для опроса, а не сокет, так что это может быть просто не соединение, но я не могу понять, почему, есть идеи?

Ответ №1:

Настройка {переносит: [«веб-карман»]} на клиенте, похоже, сделала свое дело.