我有一个server.js文件。
在里面,我定义了我的路线。
// routes
var mainRoutes = require('./routes/main.js')(app, express);
var apiRoutes = require('./routes/api.js')(app, express);
var socketRoutes = require('./routes/socket.js');
app.use('/', mainRoutes);
app.use('/api', apiRoutes);
// socket.io communication
io.sockets.on('connection', socketRoutes);
我的socket.js文件看起来像这样:
module.exports = function (socket) {
console.log('user connected');
socket.on('myEvent', function(data) {
// whatever ...
});
}
在这个功能中,我可以捕捉事件并发送一些。 但我需要在某个时候向每个人发送消息。当我收到'myEvent'事件时,请说。
所以基本上,我想这样做:
io.sockets.emit('messageForEveryone', "This is a test");
但是在这里,我只能使用'socket'参数,这个参数只适用于1个人。
我想将io从server.js传递给socket.js。
我尝试过(在server.js中):
var socketRoutes = require('./routes/socket.js', io);
那(在socket.js中):
module.exports = function (io, socket)
显然,它不起作用。我甚至不知道socket参数的来源。
问题:当我在sockets.js文件的module.export中时,我如何处理io对象?
我真的很感激任何帮助,我是所有这一切的新手。
谢谢!
答案 0 :(得分:1)
由于您只想发送给所有客户,而不是将String dateStr = "29/04/2015";
SimpleDateFormat dtf = new SimpleDateFormat("dd/MM/yyyy");
Date dt = dtf.parse(dateStr);
Calendar cal = Calendar.getInstance();
cal.setTime(dt);
String m = cal.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG_FORMAT, new Locale("no", "NO"));
System.out.println(m);
传递给io
,您只需执行此操作即可。
socketRoutes