【发布时间】:2021-03-07 10:53:48
【问题描述】:
我一直在努力设置这个,比我想承认的要长。
起初,我遇到了 CORS 问题,在遵循我遇到的 socket.io 文档/其他堆栈溢出线程之后,GET / POST 400 错误 .
最后,我注意到有几个线程提到要在服务器和客户端传入{transports: ['websocket']}。
一旦我这样做了,我就不再收到错误消息,但是,我仍然无法从我的客户端连接到我的 socket.io 服务器。我希望我能得到一些指导。
我正在运行 Socket.io 3.0 和 express 4+
这是我的服务器/客户端目前的样子..
服务器(作为快速路由器)
const express = require('express');
const socketIO = require("socket.io");
const http = require('http');
let app = express();
let router = express.Router();
let server = http.createServer(app);
// The event will be called when a client is connected.
let io = socketIO(server, {transports: ['websocket']})
io.on("connection", socket => {
console.log("connection")
socket.emit("hello", { data: "more data" })
socket.on("disconnect", () => {
console.log("user left")
})
})
server.listen(8081, () => console.log('Socket.io listening on *:8081'));
module.exports = router;
客户端(反应)
// Socket.IO
import io from 'socket.io-client';
const socket_io = io('localhost:8081', {transports: ['websocket']})
// Socket.io UseEffect
useEffect( () => {
const initSocket = () => {
console.log(socket_io)
socket_io.on("hello", data => {
setSocket(data);
console.log(data);
});
// CLEAN UP THE EFFECT
return () => socket_io.disconnect();
}
initSocket()
},[])
【问题讨论】:
标签: node.js reactjs sockets websocket socket.io