gpt4 book ai didi

node.js - 使用专用 'connection' 范围之外的套接字

转载 作者:太空宇宙 更新时间:2023-11-04 03:10:28 24 4
gpt4 key购买 nike

我正在使用sockets.io 制作一个node.js 应用程序。

我的应用程序的逻辑需要通过各自的套接字与客户端进行通信,但套接字的问题是它们位于自己的代码“域”中。

var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket) {
// socket object is only available here
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});

看到了吗?

我尝试导出此套接字对象

var Sockets = []
io.sockets.on('connection', function (socket) {
Sockets[socket.handshake.user.id] = socket;
});

现在可以在外面使用了

function myLogic(userid) {
Sockets[userid].emit('free!')
}

但是我面临着奇怪的错误,因为它可能不应该以这种方式使用...就像新连接创建新的 socket 对象,但以前的对象仍然存在于内存中的某个位置,并且当它们的 .on('..' 被触发时它们仍然会使用react...

在各自的 io.sockets.on('connection', function(socket){} 范围之外使用 socket 的正确方法是什么?

最佳答案

回答你的问题:如果你想在各自的“io.sockets.on('connection', function(socket){}范围”之外使用套接字,你必须通过io对象--> io.sockets.socket(socketId)来访问它们,其中socketId存储在某处。

关于node.js - 使用专用 'connection' 范围之外的套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22422439/

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