#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:
Настройка {переносит: [«веб-карман»]} на клиенте, похоже, сделала свое дело.