问题标签 [signalr.client]

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.

0 投票
1 回答
971 浏览

c# - 一些顺序 SignalR 调用被丢弃

在我们的应用程序中,客户端软件使用 SignalR 的 .NET 客户端库。进行了两个几乎相同的调用,但只执行了第一个。

对象进行以下调用:

AddSubscription() 在其父级上实现:

在这种情况下,客户端调用是 SignalR 客户端的 IHubProxy 包装器,它返回与 IHubProxy.Invoke() 相同的任务。_realtimeClient 本身最终是一个在整个应用程序中共享的静态客户端实例。在此之前,我们在调用或订阅服务器发送的事件方面没有问题。

无论出于何种原因,只有第一个 AddSubscription 通过。如果我交换它们,那么无论哪个现在先通过。如果我单步执行,它们都会执行。

什么可能阻止它们立即连续执行?

编辑:我应该补充一点,虽然客户端实例是静态的,但它的方法或属性都不是。

0 投票
1 回答
1492 浏览

signalr - IE 10,singalr 错误,协商请求期间出错:未定义

我有一个启用跨域、启用 javascript 代理的 singalr 自托管服务器,并且我有一个带有 jquery.support.cors = true 的 javascript 无代理客户端。我的客户端托管在 SSL 中,而我的服务器不是。我的 javascript 客户端在最新的 chrome 和 mozilla 中运行良好,除了 IE 10。

是的,我确实启用了 ramfar,我的 webconfig 文件中也设置了 access-control-allow-origin 我不确定发生了什么

IE 只是给了我 SignalR:协商请求期间出错:未定义任何帮助将不胜感激。

更新:如果这有帮助,在我的客户端上关闭 Https 时它也可以在 IE 10 中运行,因此 IE 10 上的 SSL 不允许 singalr 通过代理连接。

谢谢。

0 投票
1 回答
3947 浏览

signalr - Signalr Owin 简单示例 javascript 客户端未被调用

我有一个 5.3.0 版本的信号器自托管,它正在升级到更新版本的信号器。使用https://github.com/SignalR/SignalR/wiki/Self-host示例我创建了一个简单的示例,但我无法让它工作。

我可以连接到服务器上的集线器并调用集线器上的方法,但我无法让集线器调用 javascript 客户端。

在提琴手中查看它时,我从未看到集线器返回响应。

这是代码

}

这是客户端

任何想法都会受到赞赏,因为我相当卡住。

0 投票
1 回答
10287 浏览

signalr - SignalR:如何从服务器调用 .Net 客户端方法?

我想将数据发送到我的控制台应用程序,该应用程序与我的“someHub”有连接。我尝试按照链接中的示例中所述进行操作,但没有得到任何结果。服务器端代码:

客户端代码:

实现这一点的最佳解决方案是什么,我无法调用客户端方法的原因是什么?

0 投票
0 回答
205 浏览

javascript - 如何在 SignalR 中获取用户?

我想在我的社交网络中编写 PM 消息,我需要使用长池请求。asp.net 的最佳解决方案是使用 SignalR,但这里有一些问题。这就是执行的方式:用户写一条消息,asp.net控制器保存它,然后我们需要调用对话者客户端方法并显示该消息。但是我可以选择对话者客户端,因为我不知道他生成的ClientId,而且从SignalR 1.0版本开始,我无法实现自己的ConnectionIdFactory。在这种情况下我能做什么?

0 投票
1 回答
946 浏览

c# - 在 SignalR 和 Rx 中管理共享退订

在我们的客户端应用程序中,我们通过 SignalR.Client 发送和接收实时事件。从服务器订阅事件是通过 SignalR 完成的。在大多数情况下,订阅事件通过 SignalR 客户端发送到 SignalR 集线器,然后使用响应式扩展,将响应此类事件的应用程序部分订阅正确的 IObservable。

然而,我们现在有一些情况,同一个 observable 共享多个观察者。处理对可观察对象的每个内部订阅都很好,但我想在处理最后一个观察者后取消订阅服务器上的给定事件。我曾考虑为所有这些订阅使用单独的连接,但在这个特定的网络环境中,在连接变为活动状态之前存在相当长的延迟。

例如,客户端应用程序具有组件 A、B 和 C,它们都希望附加到从服务器接收的 SomeEvent。一旦其中任何一个变为活动状态,如果它是第一个活动的,则应用程序应订阅远程 SignalR 集线器上的事件。当其中任何一个变为活动状态时,它应该使用 Rx 在内部订阅我们已经实现的可观察集合中的相关可观察对象(如果不存在则添加一个)。当 A、B 或 C 变为非活动状态时,它显然应该处置其 IDisposable 订阅。如果它是剩下的最后一个,它应该从 SignalR 集线器服务器退订。

Tl;dr:我想做一个托管取消订阅,看看离开的观察者是否是最后一个,并且此时仅在服务器集线器上取消订阅。有没有一种有效的方法来计算 IObservable 的“活”观察者的数量?或者其他更好的方法来实现所有这些?非常感谢!

0 投票
2 回答
1181 浏览

signalr - SSL 中的 singalR selfhost 服务器和 Web 客户端中的身份验证

我有一个 singalR 自托管服务器,它在 https 上的控制台应用程序中托管我的 singalR

我正在使用这个包来自我托管:

  • 安装包 Microsoft.Owin.Hosting -pre 安装包 Microsoft.Owin.Host.HttpListener -pre 安装包 Microsoft.AspNet.SignalR.Owin

我有一个由 WebApi 支持的 Web 客户端,我可以从我的 Web 客户端连接到我的自托管 singalR 并发送消息,但是我现在想为此添加身份验证,这意味着只有登录的用户才能将消息发送到我的自托管 singalR 服务器。我在方法之前使用了 [Authorize] 属性

我通过表单身份验证完成了我的 Web 客户端身份验证,但是在我的 Web 客户端成功登录后,当我调用 singalR 方法时,我收到 javascript 错误

未捕获的值不能为空。参数名称:用户

它告诉我的方法受到保护,但不知何故我的用户没有传递到我的自托管 singalR 服务器,这里缺少什么?

0 投票
1 回答
285 浏览

.net - 由于缺少 System.Net.Http,无法构建 SignalR.Android

我正在尝试在我的 MonoDroid 项目中使用 SignalR。所以我从https://github.com/SignalR/SignalR/tree/dev下载了 DEV 分支,当我打开 Android 解决方案时,由于缺少 System.Net.Http,无法构建它。所有其他 dll 均已正确加载。

我对 MonoDroid 版本 4.6.4 和 beta 版本 4.7.4 有这个问题。你能帮我吗,我在哪里可以找到这个dll文件?

非常感谢您的帮助

0 投票
2 回答
1278 浏览

c# - signalR如何分散房间

我有一个关于 signalR 简单聊天应用程序的问题。我们有一个在本地主机上运行的应用程序,人们可以加入并互相聊天。这是我们无法指定哪个消息将发送给哪个用户的问题?我的意思是我们不能创造空间?

这是代码部分

0 投票
1 回答
803 浏览

signalr - signalR Groups.Remove 不起作用

我有一个类似于这样的场景的自托管应用程序,其中我有一个持续向组广播的方法(无论有人“加入”与否)。就像是:

我最近从 beta1 升级到 1.1.0 版。我开始观察到“删除”方法不起作用,因为即使我发起了“离开” , “客户端”(Web 浏览器)仍在接收来自“其他”组的消息。请注意,“离开”组并不意味着关闭 Web 浏览器。它仍然在同一页面中(单页应用程序),离开/加入组是由选择触发的(例如组合框)。

集线器中的代码:

javascript客户端中的代码“离开组”:

javascript客户端中的代码“加入组”:

Hub中用于加入的代码:

我在这里的实现有问题吗?