Javascript 将socket.io发射存储在全局数组中+;Node.js
是否有一种方法可以将socket.io的所有发射存储在一个全局数组中,这样当新用户加入网站时,我可以通过发射进行循环,并可以拾取当前“画布绘制”的位置。我希望新用户看到已经完成了哪些工作,然后就这些工作进行协作Javascript 将socket.io发射存储在全局数组中+;Node.js,javascript,node.js,sockets,socket.io,socket.io-redis,Javascript,Node.js,Sockets,Socket.io,Socket.io Redis,是否有一种方法可以将socket.io的所有发射存储在一个全局数组中,这样当新用户加入网站时,我可以通过发射进行循环,并可以拾取当前“画布绘制”的位置。我希望新用户看到已经完成了哪些工作,然后就这些工作进行协作 我还有别的办法吗 如果您只想在服务器运行期间存储emit,只需声明一个模块级数组并将每个emit推入该数组即可。然后,在服务器执行期间的任何将来时间,您都可以查阅阵列 如果希望跨服务器调用存储emit,则需要将它们存储到某个持久性存储(文件、数据库等) 或者,如果您试图存储所有传出的.e
我还有别的办法吗 如果您只想在服务器运行期间存储emit,只需声明一个模块级数组并将每个emit推入该数组即可。然后,在服务器执行期间的任何将来时间,您都可以查阅阵列 如果希望跨服务器调用存储emit,则需要将它们存储到某个持久性存储(文件、数据库等) 或者,如果您试图存储所有传出的
.emit()
数据,则可以重写该方法并保存发送的数据
var outgoingEmits = [];
(function() {
var oldEmit = io.emit;
io.emit = function(msg, data) {
outgoingEmits.push({msg: msg, data: data});
return oldEmit.apply(this, arguments);
};
})();
由于可能发送或接收许多不同的消息,您可以添加自己的逻辑来决定哪些消息保存在阵列中或不保存。如果您只想在服务器运行期间存储emit,只需声明一个模块级阵列,并将每个emit推入该阵列即可。然后,在服务器执行期间的任何将来时间,您都可以查阅阵列 如果希望跨服务器调用存储emit,则需要将它们存储到某个持久性存储(文件、数据库等) 或者,如果您试图存储所有传出的
.emit()
数据,则可以重写该方法并保存发送的数据
var outgoingEmits = [];
(function() {
var oldEmit = io.emit;
io.emit = function(msg, data) {
outgoingEmits.push({msg: msg, data: data});
return oldEmit.apply(this, arguments);
};
})();
由于可能会发送或接收许多不同的消息,您可以添加自己的逻辑来决定哪些消息保存在阵列中。我是将阵列添加到服务器端还是客户端?@Arihant-这完全取决于您尝试执行的操作。我假设您希望服务器收集数据,因此当新客户端连接到服务器时,您可以将收集的数据发送到新客户端。如果是这种情况,那么阵列需要位于服务器上。我是将阵列添加到服务器还是客户端?@Arihant-这完全取决于您要执行的操作。我假设您希望服务器收集数据,因此当新客户端连接到服务器时,您可以将收集的数据发送到新客户端。如果是这种情况,那么阵列需要位于服务器上。