Questions tagged «signalr»

ASP.NET SignalR是ASP.NET开发人员的库,可轻松向Web应用程序添加实时功能。也就是说,让您的服务器端代码实时将内容推送到连接的客户端。

4
.net本地主机网站始终发出getArtialSignalR / poll?transport = longPolling&connectionToken =调用
我创建了一个新的VS 2013项目,并使用Firefox浏览器查看了default.aspx页面。当我检查它所进行的净调用时,我看到它不断对以下内容进行调用: http://localhost:50682/6a663a78019845d5ade4a328cad09cc2/arterySignalR/poll?transport=longPolling&connectionToken=AQAAANCMnd8BFdERjHoAwE%2FCl%2BsBAAAAOBmDwPWa2ky2MAZXFHBMVAAAAAACAAAAAAAQZgAAAAEAACAAAADSADQXBVKiKczflJ0OzUjOLduFTJE4zd%2FLHWGpDfXnuAAAAAAOgAAAAAIAACAAAACyEX81VwilygfphPoEKCYQ6ZwrkzExoKfZzEMkqBKqqzAAAADG%2BDJbrEFOfsNm9OKhqacnGseQvrwy5kmyZnI5YJiZbjYFgzMELXHfwA7Sxjj4osJAAAAAvQvoG4N0nn8eB9FRaJaZyqaUDF%2F9ypvGN%2B%2BVefnx8U1Fq6P9HXO9vEC%2BfA2s8R4jik58rD4IcFMjM4P8l5kv6g%3D%3D&messageId=d-F1180A0E-W%2C0%7Cl%2C4%7Cm%2C0&requestUrl=http%3A%2F%2Flocalhost%3A50656%2Fdefaulttest&browserName=Firefox&tid=4&_=1384207744328 为什么这样做呢?如何停止通话?我每隔6秒就会看到无数次对上述URL的呼叫。请帮助我理解并解决此问题。

2
SignalR如何在内部工作?
谁能让我知道SignalR如何在内部进行高水平的工作? 我猜想它正在使用刷新数据,Response.Flush并且在客户端它以一定的间隔发送Ajax请求。这是正确的吗?
160 signalr 


3
我可以同时使用SignalR和RESTful API吗?
我有一个使用ASP.NET开发的单页Web应用程序。最近,我使用SignalR库将许多Web方法转换为基于推送的方法。这确实大大加快了页面速度,并减少了页面中的许多服务器调用。 同时,我也一直在研究一些服务器端方法的RESTful ASP.NET WebAPI,其真正的美在于,它允许在开发应用程序的同时为外部应用程序创建API。核心应用程序(这对我的工作很重要)。 然而,在看了几篇文章和这 两个问题之后,push和WebAPI方法似乎是客户端-服务器通信的两个完全不同的范例。我敢肯定,我可以创建可以通过这两种协议访问的各种方法,但是我不确定是否存在陷阱或认为这很草率-也许有一种更优雅的方法可以实现我的目标对于。 当然,在某些情况下,我希望RESTful WebAPI通过SignalR集线器广播事件...相反(SignalR曾经需要访问WebAPI)似乎不太可能,但我想仍然可能。 有人这样做吗?有人对如何进行有任何建议或提示吗?在这里,最优雅的前进方向是什么?

1
使用BookSleeve的ConnectionUtils.Connect()将SignalR与Redis消息总线故障转移结合使用
我正在尝试使用SignalR应用程序创建Redis消息总线故障转移方案。 最初,我们尝试了一个简单的硬件负载平衡器故障转移,该故障转移仅监视两个Redis服务器。SignalR应用程序指向单个HLB端点。然后,我使一台服务器发生故障,但无法在不回收SignalR应用程序池的情况下成功通过第二台Redis服务器获得任何消息。大概是因为它需要向新的Redis消息总线发出安装命令。 从SignalR RC1开始,Microsoft.AspNet.SignalR.Redis.RedisMessageBus使用Booksleeve's RedisConnection()连接到用于发布/ 订阅的单个Redis。 我创建了一个新类,该类RedisMessageBusCluster()使用Booksleeve's ConnectionUtils.Connect()连接到Redis服务器集群中的一个。 using System; using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; using BookSleeve; using Microsoft.AspNet.SignalR.Infrastructure; namespace Microsoft.AspNet.SignalR.Redis { /// <summary> /// WIP: Getting scaleout for Redis working /// </summary> public class RedisMessageBusCluster : ScaleoutMessageBus { private readonly int _db; private readonly string[] _keys; …

5
SignalR-使用(IUserIdProvider)*新建2.0.0 *向特定用户发送消息
在最新版本的Asp.Net SignalR中,添加了一种使用接口“ IUserIdProvider”向特定用户发送消息的新方法。 public interface IUserIdProvider { string GetUserId(IRequest request); } public class MyHub : Hub { public void Send(string userId, string message) { Clients.User(userId).send(message); } } 我的问题是:我怎么知道我要向谁发送消息?这种新方法的解释非常肤浅。而SignalR 2.0.0的声明草案带有此错误,无法编译。有人实现了此功能吗? 更多信息:http : //www.asp.net/signalr/overview/signalr-20/hubs-api/mapping-users-to-connections#IUserIdProvider 拥抱

1
Node.js vs SignalR:为什么我们需要服务器端JavaScript?
自从了解Node.js以来,我一直是它的粉丝。但是今天,我发现了SignalR,它为ASP.NET提供了另一种异步的-可伸缩的实时模型。 据我所知,与SignalR相比,Node.js的主要优势是在客户端-服务器之间共享代码(另一个优势应该是跨平台),而SignalR的主要优势是更成熟的框架和更好的框架工具(IDE)支持。所以我想知道:如果SignalR在这里,我们是否需要Windows上的Node.js?我不知道Node.js有什么优势吗?

4
SignalR Console应用程序示例
是否有一个使用signalR将消息发送到.net集线器的控制台或Winform应用程序的小示例?我尝试了.net示例,并查看了Wiki,但对我而言,集线器(.net)和客户端(控制台应用程序)之间的关系没有任何意义(找不到此类示例)。该应用程序是否仅需要连接集线器的地址和名称? 是否有人可以提供一小段代码来显示应用程序连接到集线器并发送“ Hello World”或.net集线器收到的内容? PS。我有一个标准的中心聊天示例,该示例很好用,如果我尝试在Cs中为其指定中心名称,它将停止工作,即[HubName(“ test”)],您知道原因吗? 谢谢。 当前控制台应用程序代码。 static void Main(string[] args) { //Set connection var connection = new HubConnection("http://localhost:41627/"); //Make proxy to hub based on hub name on server var myHub = connection.CreateProxy("chat"); //Start connection connection.Start().ContinueWith(task => { if (task.IsFaulted) { Console.WriteLine("There was an error opening the connection:{0}", task.Exception.GetBaseException()); …
84 c#  signalr 

2
如何在中心线之外使用SignalR集线器实例
我正在使用SignalR向所有客户广播消息。我需要在集线器类之外触发广播,例如以下内容: var broadcast = new chatHub(); broadcast.Send("Admin","stop the chat"); 我收到以下错误消息: 不支持使用非HubPipeline创建的Hub实例。

3
Node.Js + Socket.IO与SignalR与C#WebSocket服务器
我目前有一个用.Net编写的TCP服务器应用程序,用于接收消息并将其提交给客户端。我正在考虑构建Web应用程序,因此需要通信层。 我已经构建了一个Node.JS + Socket.IO应用程序,该应用程序连接到我的TCP服务器,然后将通信推送到Web应用程序,并且一切正常。 我刚刚读过SignalR作为将其保留在.Net堆栈中的替代方法。 但是我也发现我可以编写一个C#Websocket Server,一个基本的演示 这里 我以为这个基本服务器就是SignalR,但是显然其中有很多功能吗? 我要决定的是只将当前的TCP应用程序附加到Websocket服务器,还是关闭单独的SignalR或Node.js路由?出于兴趣,SignalR应用程序是作为Windows服务,控制台应用程序还是IIS服务运行的?

5
从系统中的其他位置调用SignalR集线器客户端
我已经建立了SignalR集线器以在服务器和客户端之间进行通信。中心服务器端代码存储在名为Hooking.cs的类中。我想要的是能够调用Hooking.cs中定义的方法,以允许我从应用程序中的任何位置向任何连接的客户端广播消息。似乎为每个客户端/服务器调用都创建了一个新的Hooking.cs实例,因此我希望能够使用类似 var hooking = new Hooking(); hooking.Test(); 使用Hooking.cs中定义的Test()方法,例如 public static void Test() { Clients.test() } 并带有客户端javascript var hooking = $.connection.hooking; hooking.test = function() { alert("test worked"); }; $.connection.hub.start() 不幸的是,它不是那么简单,因为客户端不是静态的,因此不能从静态方法访问。 在查看SignalR源代码时,我遇到了一种看似有希望的方法Hubs.Invoke(string hubName, string method, params object[] args),所以我希望可以使用诸如之类的方法,Hubs.Invoke("Hooking", "Test")但不能使其正常工作。 任何帮助将不胜感激

9
找不到IAppBuilder的类型或名称空间(缺少使用程序集指令的指令)
我正在使用Asp.Net MVC 4应用程序,在其中使用SignalR 2.0.1,并使用Owin Startup类对其进行了映射,并且起初运行良好。 突然,当我尝试重建应用程序时,它说IAppbuilder找不到类型名称空间。 以下是我的入门班 using Microsoft.Owin; using Owin; using WhiteBoardApp; namespace WhiteBoardApp { public class Startup { public void Configuration(IAppBuilder app) { app.MapSignalR(); } } } 我也安装了Owin软件包,由于某些原因,我找不到Owin Startup类,所以我只添加了一个普通类并包含了所有需要的引用。我可以知道我在哪里犯错

5
从SignalR呼叫特定的客户端
我想从服务器呼叫特定的客户端,而不是广播给所有的客户端。问题是我属于某些AJAX请求的范围(在.aspx代码后面,可以说),而不属于Hub或PersistentConnection,因此没有Clients属性-进行该ajax(jquery)调用的客户端不是该客户端我想发送信号器消息! 现在,我有一个在JS页面加载时调用的中心,它将新客户端注册到服务器静态列表中,因此我有客户端Guid。但是不知道如何使用它从服务器向特定客户端发送消息。
70 asp.net  signalr 

2
JavaScript转换C#数值精度损失
当使用带MessagePack的SignalR在JavaScript和C#之间对值进行序列化和反序列化时,在接收端C#中会看到一些精度损失。 作为示例,我将值0.005从JavaScript发送到C#。当反序列化的值出现在C#端时,我得到的0.004999999888241291是接近的值,但不是精确的0.005。JavaScript端的值是Number,我正在使用的C#端的值double。 我已经读过JavaScript不能完全表示浮点数,这会导致类似的结果0.1 + 0.2 == 0.30000000000000004。我怀疑我看到的问题与JavaScript的此功能有关。 有趣的是,我没有看到相同的问题。从C#向JavaScript发送0.005会在JavaScript中产生0.005的值。 编辑:从C#的值只是在JS调试器窗口中缩短。正如@Pete所提到的,它确实扩展为不完全为0.5的值(0.005000000000000000104083408558)。这意味着差异至少发生在双方。 JSON序列化没有相同的问题,因为我假设它通过字符串传递,从而使接收环境留在控件中,从而将值解析为其原始数值类型。 我想知道是否有一种使用二进制序列化的方法来在两端都具有匹配的值。 如果不是,这是否意味着无法在JavaScript和C#之间进行100%准确的二进制转换? 使用的技术: 的JavaScript 带有SignalR和msgpack5的.Net Core 我的代码基于这篇文章。唯一的区别是我正在使用ContractlessStandardResolver.Instance。

1
SignalR .NET客户端连接到Blazor .NET Core 3应用程序中的Azure SignalR服务
我正在尝试在ASP.NET Core 3.0 Blazor(服务器端)应用程序与Azure SignalR服务之间建立连接。最后,我将SignalR客户端(服务)注入到一些Blazor组件中,以便它们可以实时更新我的​​UI / DOM。 我的问题是,.StartAsync()在集线器连接上调用方法时,我收到以下消息: 响应状态代码不表示成功:404(未找到)。 BootstrapSignalRClient.cs 该文件加载了我对SignalR服务的配置,包括URL,连接字符串,键,方法名称和集线器名称。这些设置在静态类中捕获,SignalRServiceConfiguration并在以后使用。 public static class BootstrapSignalRClient { public static IServiceCollection AddSignalRServiceClient(this IServiceCollection services, IConfiguration configuration) { SignalRServiceConfiguration signalRServiceConfiguration = new SignalRServiceConfiguration(); configuration.Bind(nameof(SignalRServiceConfiguration), signalRServiceConfiguration); services.AddSingleton(signalRServiceConfiguration); services.AddSingleton<ISignalRClient, SignalRClient>(); return services; } } SignalRServiceConfiguration.cs public class SignalRServiceConfiguration { public string ConnectionString { get; set; …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.