javascript - 如何使用 SignalR 和 MVC 管理playerId

标签 javascript asp.net-mvc asp.net-mvc-5 signalr persistence

在使用 SignalRMVC 进行游戏开发时,我必须管理玩家 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/

相关文章:

c# - 不是 nHibernate 标准中的关联 (Asp.Net MVC4)

c# - ASP.NET MVC 5 为下拉列表设置值

javascript - 为什么 typeof null 的值会在循环内发生变化?

javascript - 将字符串中的非拉丁字符更改为拉丁字符

javascript - 在 Angular 中等待 http 请求

javascript - Syncfusion Javascript Tab - 更改选项卡按钮高度/字体大小

.net - 在 ASP.NET MVC 中测试 Html Helpers

.net - Html.RenderAction 导致 "No route in the route table matches the supplied values"

c# - 映射对象时如何将自定义逻辑应用于AutoMapper?