gpt4 book ai didi

javascript - 将socket.io逻辑与服务器文件分离并访问逻辑文件中的io.sockets

转载 作者:太空宇宙 更新时间:2023-11-04 00:52:44 25 4
gpt4 key购买 nike

server.js (起点)我的 Nodejs 应用程序,我执行以下操作来启动服务器和套接字:

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);
});

关于javascript - 将socket.io逻辑与服务器文件分离并访问逻辑文件中的io.sockets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31621932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com