[英]NodeJs + Socket.io : io.to from module
I'm trying to emit a message in a specific room in my modules following Patrick Robert's answer How can i export socket.io into other modules in nodejs?.我正在尝试按照 Patrick Robert 的回答如何在我的模块中的特定房间中发出消息如何将 socket.io 导出到 nodejs 中的其他模块中?。
io.js io.js
var sio = require('socket.io');
var io = null;
exports.io = function () {
return io;
};
exports.initialize = function(server) {
return io = sio(server);
};
module.js模块.js
ioreq = require('./io')
ioreq.io().on('connection', function(socket) {
var room_name = 2;
socket.join(room_name);
socket.to(room_name).emit("test",'This is a Test'); //This is working
});
function sendDataFromModule(data) { // This function don't do anything at all !
socket.to(room_name).emit("test",data);
}
sendDataFromModule('Test from function');// Not working
}
Can you help me make it work ?你能帮我让它工作吗?
Make io global variable, in io.js在 io.js 中创建 io 全局变量
global.io = require("socket.io")(server);
in module.js在 module.js 中
//ioreq = require('./io') no need for this
io.on('connection', function(socket) {
var room_name = 2;
socket.join(room_name);
socket.to(room_name).emit("test",'This is a Test'); //This is working
});
function sendDataFromModule(data) {
io.in(room_name).emit("test",data); // change this
}
sendDataFromModule('Test from function');
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.