我一直在浏览这个网站和网络来寻找答案,但找不到真正令我满意的答案。
我计划为后端编写一个基于node.js + socket.io 的小型多人网页游戏。为了处理新用户,我编写了以下代码:
io.sockets.on('connection', function(socket)
{
socket.emit('connected', {message: "you are connected!"});
var player = new myGame();
}
myGame 是我自己的函数,包含游戏本身的许多变量(用户名、分数、金钱...)。我的问题是如何拥有一个使用所有玩家 myGame 对象的数据并更新它的游戏引擎?我正在考虑使用 myGame 对象的全局数组,但这意味着数据被复制两次(在套接字中和全局数组中)。
在 C/C++ 中,我会使用指针或引用,但 JS 是一种按值传递语言。有什么想法吗?
最佳答案
您可以创建映射到 username/socket.id 键的全局对象数组。您不一定必须将该数据存储在套接字中,对吗?每次发生事件时,获取socket.id和事件数据并将其发送到全局对象。从那里,使用全局对象和套接字 ID 将任何信息转发回套接字。这有望保留它,以便套接字上的内容与每个人看到的内容相同,因为它们都访问相同的数据。
关于javascript - 使用node.js + socket.io处理多用户数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24873457/