问题标签 [signalr-hub]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
backbone.js - 为什么collection.reset 像collection.add 一样工作?
我有一个 Backbone 集合的视图。当我通过backbone.signalR 集线器重置集合时,我希望得到一个通过集线器传递的新集合,但它只是重置集合,然后像调用collection.add
传递给它的任何内容一样工作。因此,我在集合中的模型中获得了 12 个属性,其中前 6 个为空值,后 6 个为当前值。
我的收藏包含具有 6 个属性的模型。我想用新的 6 个值重置它们的值。但是我打不通collection.reset()
。
在重置我的收藏之前,我有一个对象包含以下 6 个属性:
重置我的收藏后,我得到一个包含以下 12 个属性的对象:
所以,我不知道是什么问题,或者我怎样才能摆脱这个问题。我只想在集合重置后获得具有更新值的 6 属性值。
redis - 在 Windows 上使用 Redis 时 SignalR 节点之间没有通信 - 如何解决?
我将使用 SignalR 和 Redis 设置具有故障转移环境的横向扩展。第一步是确保 Redis 正在处理 SignalR 节点之间的通信(当前问题)。随后将连接 Redis Sentinel 和 BookSleeve,以便 SignalR 节点访问单个 Redis 端点。
在他的文章Scaling SignalR with Redis中,@mirajavora 解释了如何设置单实例 Redis 环境。
为了测试(即使这最终将驻留在 *nix 机器上),我在 Windows 上设置了 Redis。服务器启动,我将 SignalR 应用程序配置为使用 Redis 消息总线。
我通过在没有运行 Redis 的情况下运行应用程序来验证 SignalR 应用程序正在使用 Redis。我收到一个预期的错误,指示:
无法建立连接,因为目标机器主动拒绝它 127.0.0.1:6379
然后我启动 Redis 并回收 SignalR 应用程序池。
使用以下 URL,我验证 SignalR 应用程序正在与 Redis 通信:
newsfeedlocal1:8082/signalr?transport=longPolling&connectionId=7285d6e5-412c-4bca-9897-5f9ab1ebcece&connectionData=%5B%7B%22name%22%3A%22newsfeedhub%22%7D%5D&messageId=B%2C0%7CF%2C2%7CG%2C0 %7CH%2C0&tid=5&callback=jQuery17204961678246036172_1357588747275&_=1357588762433
Redis状态:
到目前为止一切顺利......应用程序按预期运行。
在他的文章结尾处,Mira 在 Global.asax 中有以下行,我在其他文档中没有看到:
RouteTable.Routes.MapConnection("echo", "echo/{*operation}");
我的 SignalR 项目中没有 DistributedConnection 对象,并且已将其省略(因为我在GitHub 文档中没有看到它。对此行有任何进一步的解释吗?
Mira 的文章建议增加最大工作进程数以进行本地测试。将此设置为 1 以外的任何数字,都会中断节点之间的通信。客户端 1 执行一些操作来通知连接的客户端 2 - 其中窗口 1 在窗口 2 上向客户端 2 发送通知。
我确实看到了多个工作进程,但不知何故我认为这不是一个好的测试场景。我打开了 Fiddler,但不确定要寻找什么来进一步调试此问题。像这样的测试是否真的能正确模拟多个 SignalR 节点?
目前我正在测试这个没有负载平衡器。有推荐的软件负载均衡器吗?
javascript - SignalR:如果没有客户端方法,则不会调用 Hub OnConnected
我正在 SignalR 中编写游戏。这个想法是你连接你的笔记本电脑,它将用作“显示器”,然后你连接你的智能手机,它将用作“操纵杆”。整个设置运行良好。
现在一切正常,我决定重构代码。我意识到操纵杆和显示器之间的关系是一种方式(显示器永远不需要将信息发送回操纵杆)。因此我决定在操纵杆上不需要任何 signalR 可调用的客户端函数(例如,gameHub.client.joyStickMethod()
在操纵杆 js.
就在那时我发现了一些奇怪的东西
事实证明,public override Task OnConnected()
除非我定义一个myHub.client.clientSideMethod()
. 这是我正在处理的示例:
你看到那个空的客户端方法了吗?这就是为什么OnConnected
在服务器端调用的原因。如果我删除那行代码,它将不会被调用。
这不起作用,因为集线器上没有客户端方法。我可能可以RegistrateJoystick
在集线器上添加一个方法并调用它,但我认为这种行为是出乎意料的。因此,我的问题是:
有没有办法手动“连接”到集线器,以便OnConnect
调用该方法?
.net - signalR 中的重新连接何时发生?
我已经开始使用 SignalR 并试图弄清楚何时发生集线器重新连接。我在网上没有找到任何令人满意的解释。有人可以解释何时/为什么会发生重新连接吗?
c# - SignalR 中组的性能问题?
SignalR 中的大量组对性能有多大影响?例如,以一个有帖子的社交网络为例,对需要通过 SignalR 中心更新的帖子进行评论。最好为每个帖子创建一个组,然后将评论更新发送到该组,将评论更新发送给所有客户端,然后让客户端代码决定是否更新,或者是还有另一种我想念的方式吗?谢谢!
c# - SignalR 中的事件顺序是否得到保证?
如果我有一个简单的 SignalR 应用程序,如下所示:
客户:
服务器集线器:
输出如下所示:
我不完全确定哪些部分正在工作异步魔法,哪些部分没有,所以我想知道这个顺序是否得到保证?
服务器端调用的返回值是否保证在该调用可能触发的任何服务器端推送消息之前到达?
signalr - 如何在 Signal R 中实现 FormAuthentication
我在我的 mvc 3 应用程序中使用 Signal R。当我尝试从客户端连接时,它会失败。
signalr - SignalR-rc2 不再支持 IConnectionIdPrefixGenerator
从 signalr-rc2 开始,不支持 IConnectionIdPrefixGenerator?如果支持,有计划稍后公开吗?
c# - 为什么集线器 OnConnected / OnDisconnected 上没有 Session?
当我覆盖OnConnected
/OnDisconnected
然后寻找一个HttpContext.Current.Session
为空的会话时。
我假设此时已经创建了一个会话。我错过了什么吗?
iis-7.5 - SignalR 0.5.3 和 IIS 7.5
我已经在几个使用信号器进行通信的客户上部署了一个应用程序。它适用于带有 IIS 6.0 和映射配置的 windows 2003 服务器,也适用于 win 7 和 iis express。但是对于带有 IIS 7.5 的 windows 2008 R2 集线器文件,虽然它已提供服务,但带有服务器方法列表的 signalr.hub 不包含在脚本中,因此客户端无法连接到集线器。
帮助表示赞赏!