套接字不发出消息

Socket not emit messages

我在使用 React 和 ExpressJS 接收从客户端到服务器的消息时遇到了问题。在客户端启动 sendMessage 功能后,我想向服务器发送我的消息,但是,我不知道为什么我的服务器没有收到此消息,并且 io.on("message", (message) => { 没有用他的 [= 启动30=]:/

这是我的代码

服务器端: index.ts

const server = http.createServer(app);
export const socketIo = socket(server);

socket.ts

export const socket = (httpServer: any) => {
    const io = new Server(httpServer, { cors: { origin: "http://localhost:5000" } });

    io.on("connection", (socket) => {
        console.log("Socket connected!")
        socket.emit('connection', null);
    });

    io.on("message", (message) => {
        console.log("NEW MESSAGE: ", message)
    })
}

客户端: App.tsx

const SOCKET_SERVER = "http://127.0.0.1:3000";

export const socket = socketClient(SOCKET_SERVER);
socket.on('connect', () => {
  console.log('CONNECTED WITH BACKEND SOCKET')
})

Chat.tsx

  const sendMessage = () => {
    const message = form.getFieldsValue()["typedMessage"];

    socket.emit("message", message);
    
    form.resetFields();
  };

感谢您的帮助!

io.on("connection", (socket) => {
    console.log("Socket connected!")
    socket.emit('connection', null);
});

io.on("message", (message) => {
    console.log("NEW MESSAGE: ", message)
})

“连接”在服务器侦听器上触发并提供连接的套接字。然后套接字用于接收消息。这意味着接收消息必须在 socket 上完成,而不是在监听器 io:

上完成
io.on("connection", (socket) => {
    console.log("Socket connected!")
    socket.emit('connection', null);

    socket.on("message", (message) => {
        console.log("NEW MESSAGE: ", message)
    });
});