套接字io react无法接收到房间的消息

时间:2019-11-10 19:19:06

标签: reactjs sockets redux socket.io

我正在使用socket.io并进行响应和还原。设置连接并加入房间没有问题。也会向客户作品发出Bernal消息。但是,当我尝试从服务器向会议室客户端发送消息时,客户端将不会收到该消息。我正在尝试serval选项,但是global.io.sockets.in(req.user.bedrijf).emit('klussen',结果);不会发送,否则客户端将不会接收。

服务器代码 //server.js

var io = require('socket.io')(server);
global.io = io; //added
io.sockets.on('connection', function (socket) {
  socket.on('room', function (room) {
    socket.join(room);
  });
});

// controller.js

   global.io.emit('klussen', results);
      global.io.sockets.in(req.user.bedrijf).emit('klussen', results);
      res.json({
        results
      });

当我使用global.io.emit('klussen',results);客户端正在接收消息

客户代码

export function connecttochat(bedrijf) {
    const socket = io();
    return dispatch => {
        socket.on('connect', () => {
            socket.emit('room', bedrijf);
            return dispatch(connect(true));
        });
        socket.on('disconnect', () => {
            return dispatch(connect(false));
          });

    };
}

此代码有效。我可以看到客户正在加入房间。我还检查了req.user.bedrijf是否与客户端“ bedrijf”相同。

接收消息的代码

export function liveklussen() {
    const socket = io();
    return dispatch => {
        socket.on('klussen', function (data) {
            alert(data)
            return dispatch(add(data));
        });
    };
}

何时在服务器global.io.emit('klussen',结果)中使用此代码,客户端会收到此消息,并且我会收到警报(alert(data)

有人可以帮我吗

0 个答案:

没有答案