1

我正在尝试使用 websockets 和 socket.io 制作一个简单的多人游戏。

我们的大部分功能都在工作,我们现在的问题是找出获胜的玩家是谁。

所以我们现在尝试实现的解决方案是在运行时获取套接字,当玩家死亡时,他们会向服务器发送消息。接收到此消息的服务器将属性“死”添加到套接字。socket.dead = true当玩家死亡时设置。

然后我们检查连接的套接字列表(动态获取)以查看是否只有一个剩余的玩家活着(通过检查是否定义了 socket.dead)。我们意识到的一件事是已连接套接字的 socket.ids 实际上发生了变化——这证明对我们来说是个问题......

问题是套接字 id 何时何地发生变化,我们如何检测这些变化以便更新我们的游戏数据?

谢谢

4

1 回答 1

0

您不应该检查套接字 id,而是应该在用户每次连接到 Socket.IO ( socket.user = username) 时对用户进行身份验证。

然后,您可以检查他们的用户名,而不是检查“活着”的玩家的 id。

更多关于使用 Express 和 Socket.IO 处理会话的信息:http ://www.danielbaulig.de/socket-ioexpress/

于 2012-06-12T19:09:04.347 回答