如何使用 SignalR 和 MVC 管理 playerId

How to manage playerIds with SignalR and MVC

SignalRMVC 的游戏开发中,我必须管理玩家 ID。

对于 MVC,所有 Controllers 都会为每个 AJAX 请求重新创建,因此您无法存储任何内容,除非您使用数据库或将其存储在 cookie 中。

SignalR 是否有任何工具可以用来为游戏保留诸如 playerIds 之类的东西以缓解这种情况?

您无法从 SignalR 获取连接 ID,但您可以在 OnConnected 方法上为每个用户注册一个 ID。只需在您的中心覆盖该功能即可。

可能有更简单的方法,但一个选择是将会话密钥传递给 JS,然后您可以从 JS 将会话密钥(或任何其他唯一标识符)传递回每个命令的服务器.

例如,当用户首次连接时:OnConnected() -> 从 JS 获取用户唯一 ID 并将其保存在本地以将每个用户映射到唯一 ID(可能将该 ID 保存为组 ID,以便您可以根据 id 调用向该用户发送回消息)。 在发送到中心的每个请求之后,您可以将唯一 ID 附加到它,然后您可以随意使用它。

我很确定您可以找到更简单的方法来定义唯一标识符,也许还有更合适的方法将您的数据保存在中心。

这么一想,你也应该看看this