![](/img/trans.png)
[英]Node.js - socket.io - reference to io.sockets suddenly undefined
[英]Separating socket.io logic from server file and accessing io.sockets in logic file
在我的Nodejs应用程序的server.js
(起点)中,我执行以下操作来启动服务器和套接字:
var socket = require('./routes/socket');
var port = process.env.PORT || 9091;
var io = require('socket.io').listen(app.listen(port, function(){
console.log('Server is listening on port: ' + port);
}));
io.sockets.on('connection', socket);
现在在./routes/socket
我希望能够广播给所有客户端,我相信我必须这样做: io.sockets.emit()
具有相同的io
问题是我无权访问该文件中的io
:
// export function for listening to the socket
var store = (function(){
var value = 0;
var getValue = function() {
return value;
};
var addValue = function(toAdd) {
value += toAdd.messages;
return value;
};
return {
getValue: getValue,
addValue: addValue
};
}());
module.exports = function (socket, io) {
socket.emit('value', {
value: store.getValue()
});
// broadcast a user's message to other users
socket.on('getValue', function (data) {
socket.emit('value', {
value: store.getValue()
});
});
socket.on('addValue', function (data) {
store.addValue(data);
io.sockets.emit('value', {
value: store.getValue()
});
});
};
任何想法 ?
最后,在server.js
文件中,该文件应为:
io.sockets.on('connection', function (sock) {
socket(sock, io);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.