问题标签 [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 投票
2 回答
2875 浏览

signalr - 客户端不断重新连接

我连接到信号器集线器的 .net 应用程序不断重新连接。

这个问题只发生在某些其他公司网络上,这让我相信某些东西被阻止了。我尝试使用同一网络中的 jabbr.net 网站,但这也不起作用(在 chrome 中)。

我如何追踪/解决这个问题?

在此处输入图像描述

0 投票
2 回答
2237 浏览

c# - 如何在 SignalR 持久连接中发送已连接的组名称?

我需要向不同的用户组发送数据。我可以在这里使用集线器概念,但唯一的 SignalR Android 客户端库“SignalA” https://github.com/erizet/SignalA 没有集线器实现,所以我不得不使用持久连接及其组概念。现在我在 SignalR 文档站点上看到了这个 OnConnected 方法

我希望用户能够加入不同的组,所以当他连接时,他将传递一个他想要添加到的组名。如何在客户端传递组名并在上述方法中接收它,而不是使用硬编码的“foo”?

如果有人可以将我指向具有集线器实现的 SignalR Java 客户端库,我也会非常高兴,因为我找不到任何集线器。

谢谢

0 投票
1 回答
1471 浏览

c# - 不兼容的协议版本有什么影响吗?

我正在为我的 iOS 和 Android Signalr 客户端使用第 3 方库。客户端有一个 alpha-2 版本的 SignalR,服务器使用的是最新的 1.0.0 版本,因此面临协议版本不兼容的错误。如果我在客户端代码中绕过此协议匹配检查,则可以毫无问题地连接。但这会导致任何功能失败吗?

客户端无法接收我从 SignalR 服务器发送的任何数据,可能是协议不兼容的原因吗?如果是这样,那么我该如何解决这个不兼容的协议版本问题?

0 投票
1 回答
1154 浏览

signalr - SignalR:将 SSL 页面上的 JS 客户端连接到不使用 SSL 的 SelfHost

我正在开发一个应用程序,以使用 SignalR 在多个 Web 托管应用程序之间执行上下文同步。客户端机器使用 SignalR Owin 主机实例化主机,应用程序使用 JS 客户端的无代理版本连接到它。我遇到的问题是“客户端”应用程序托管在 SSL 环境中,而 SignalR 主机不是(因为它受限于本地机器)。如果我尝试从托管 javascript 客户端的标准非 SSL 网站连接到集线器,一切正常。一旦我将客户端加载到 SSL 网站,但是当我尝试启动连接时,我会收到“SignalR:协商请求期间错误:未定义”。有人知道解决这个问题的方法吗?

主持人:

JS客户端:

0 投票
1 回答
375 浏览

signalr - SignalR 与现有网站的问题

当我尝试在我们现有的 Web 应用程序(使用 MVC 4)中添加 SignalR 时,我在页面加载时收到以下错误消息。

消息:无法获取属性“signalR”的值:对象为空或未定义 URI:http ://dev.casino.bwin.com/signalr/hubs

我试图导航到 signalr/hubs jquery,它似乎工作正常,因为我的客户端集线器类在 javascript 中可用。

关于我可能做错了什么的任何指示。

0 投票
1 回答
8685 浏览

javascript - 跨域不适用于 SignalR PersistentConnection

注意:最初有人问过这个问题,但在我发布答案之前将其删除。由于这个问题涵盖了开发人员在尝试使 SignalR 跨域工作时面临的许多问题,因此我决定复制它。另外,我已经写完答案了!

我在 ASP.NET MVC .NET Framework 4 项目中运行 SignalR 1.0.1 服务器。我在另一个域(不同的本地主机端口)上有另一个 ASP.NET 应用程序,试图通过 JavaScript 客户端进行连接。当我的应用程序尝试连接时,我得到了这个:

我已按照所有步骤启用 SignalR 的跨域支持——我错过了什么?

  • jQuery.support.cors = true;
  • $.connection('http://localhost:31865/api', '', false, { jsonp: true, xdomain: true });
  • RouteTable.Routes.MapHubs(new HubConfiguration { EnableCrossDomain = true });
  • RouteTable.Routes.MapConnection<ApiConnection>("/api", "api");

我还在 API 项目的 Web.config 中添加了以下内容:

我正在为我的 SignalR 服务器使用 PersistentConnection,而不是集线器。

有任何想法吗?

0 投票
3 回答
6642 浏览

windows-7 - SignalR .NET 客户端不支持 Windows 7 上的 WebSockets

我使用 SignalR 编写了一个小型 echo-server (.net 4.5)、控制台客户端 (.net 4.5) 和 Web 客户端,示例如下

服务器托管在 IIS8/Win8 中。然后我在 Win7 上运行了两个客户端。我看到 Chrome 中的 Web 客户端使用 webSockets,而控制台应用程序客户端使用 serverSentEvents。如果我在 Win8 上运行控制台客户端,则 webSockets 传输正在使用中。

SignalR .NET 客户端是否仅在 Win8 及更高版本上使用 webSockets?

0 投票
1 回答
413 浏览

c# - SignalR 不添加服务器回调

当我每次尝试添加新的服务器回调函数时,我似乎无法让回调显示在 $.connection 服务器回调列表中。

我需要做什么来刷新 SignalR 生成并使用最新的服务器回调列表发送到客户端的 javascript。

我认为我应该能够为客户端添加一个服务器回调来调用和重建我的应用程序并启动一个新的 Google Chrome 实例,并且新添加的服务器回调将在客户端的可用回调列表中。

例如,这正是我所做的。

1.) 一个客户加入一个群组,每个人都会收到通知。

2.) 在客户端,加入的函数是从服务器调用的

3.) 现在,如果有人加入了,不是当前打开的窗口的用户,那说明刚加入的人不是我自己,所以我需要回拨服务器通知新加入的用户加我到他们的用户列表。我不必跟上数据库中给定组的当前登录用户,我只是将组的每个登录客户端用作分布式数据库,并让他们管理自己的信息。

所以,我需要调用名为 addMeNewbie 的服务器回调;但是,此回调函数在列表中不可用。

这是调试模式下客户端的快照 调试快照

4.) 最后这里是我需要服务器调用的客户端回调,以便新加入的组成员可以更新他们当前组成员的列表。

我认为我应该能够添加任意数量的服务器回调,并且它们应该出现在下一次构建和重新启动 Google Chrome 的新实例时;然而,这种情况并非如此。我需要做什么才能让新添加的服务器回调显示在客户端的可用服务器回调中?这对我来说并没有,但我在想这可能是兑现问题还是什么?

唯一可用的回调是提供的快照中显示的回调。目前我只有两个回调,一个是在快照中看到的,一个是不可见的。

0 投票
0 回答
541 浏览

asp.net-mvc-4 - MVC 控制器操作是否可以在不涉及 jQuery 的情况下直接订阅 SignalR Hub 事件?作为纯 .NET SignalR 客户端,没有 JavaScript?

我正在尝试确定客户端对 jQuery 的依赖。基本上,我希望控制器订阅集线器并在触发集线器方法/事件时更新控制器操作(重定向、ViewBag 等)。到目前为止,我只找到对视图执行一些更新的 jQuery 集线器连接示例,例如将 <li> 附加到 <ul> 以进行消息输出。

我一直听说您可以从 Channel9 上的演示文稿中执行 SignalR 的纯 .NET 客户端实现,但似乎无法找到它是如何实现的。代码参考/文章会很好。

0 投票
1 回答
1651 浏览

c# - 客户端在短时间内发送过多消息会丢失消息

服务器广播如下消息:

基本思想是在开始时服务器从客户端接收消息以及要发送的消息数。然后在 while 循环中,它会广播这么多消息并进行一些日志记录。客户端也很简单,它只计算接收到的消息数量并记录输入数据:

我做了几个测试:

  • 广播多达 1000 条消息工作正常,客户端接收所有消息
  • 广播 2000 条消息,客户端只收到大约 1500 条消息
  • 广播 10K 条消息,收到的 1500-1600 条消息相同

当服务器托管在云服务中时,测试是在本地和 Azure 上执行的。

那么,我做错了什么?我是否错过了配置中的某些内容或其他内容?