gpt4 book ai didi

javascript - 将socket.io 存储在全局数组+ Node.js 中

转载 作者:行者123 更新时间:2023-12-02 14:30:56 25 4
gpt4 key购买 nike

有没有一种方法可以将socket.io的所有发出存储在全局数组中,以便我可以在新用户加入网站时循环发出,并可以拾取“ Canvas 绘图”当前所在的位置。我希望新用户能够看到已经完成的工作,然后进行协作。

我还有其他方法可以解决这个问题吗?

最佳答案

如果您只想在服务器运行期间存储发射,您可以简单地声明一个模块级数组并将每个发射插入该数组。然后,在该服务器执行期间的任何 future 时间,您都可以查阅该数组。

如果您希望跨服务器调用存储发射,那么您需要将它们存储到某些持久存储(文件、数据库等)。

// save incoming data from one particular message
var emitsForSomeMessage = [];

io.on("someMessage", function(data) {
// save the incoming data for future reference
emitsForSomeMessage.push(data);
});

或者,如果您尝试存储所有传出的 .emit() 数据,那么您可以重写该方法并保存发送的内容。

var outgoingEmits = [];
(function() {
var oldEmit = io.emit;
io.emit = function(msg, data) {
outgoingEmits.push({msg: msg, data: data});
return oldEmit.apply(this, arguments);
};
})();

由于可能会发送或接收许多不同的消息,因此您可以添加自己的逻辑来决定哪些消息保存在数组中或不保存。

关于javascript - 将socket.io 存储在全局数组+ Node.js 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37840576/

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