我正在使用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)
有人可以帮我吗