在使用 SignalR
和 MVC
进行游戏开发时,我必须管理玩家 ID。
使用MVC
,所有Controllers
都会为每个AJAX
请求重新创建,因此除非您使用数据库或存储它,否则您无法存储任何内容在 cookies 中。
SignalR
是否有任何工具可以用来保存游戏的 playerIds
等内容,以缓解这种情况?
最佳答案
您无法从 SignalR 获取连接 ID,但您可以在 OnConnected
方法上为每个用户注册一个 ID。只需覆盖您中心中的该功能即可。
可能有一种更简单的方法来做到这一点,但一个选择是将 session key 传递给 JS,并且您可以在每个命令上从 JS 将该 session key (或任何其他唯一标识符)传递回服务器。
例如,当用户第一次连接时:OnConnected() -> 从 JS 获取用户唯一 id 并将其保存在本地,以将每个用户映射到唯一 id(可能将该 id 保存为组 id,以便您可以调用根据 id 向该用户发回消息)。 之后,在发送到中心的每个请求中,您可以将唯一的 ID 附加到它,然后您可以按照自己的喜好使用它。
我很确定您可以找到更简单的方法来定义唯一标识符,也许还有更合适的方法来将数据保存在中心。
现在我想起来了,你也应该检查一下this .
关于javascript - 如何使用 SignalR 和 MVC 管理playerId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33465838/