SignalR等待启动连接
我正在实施Signalr库,以在ASP.NET MVC应用程序中使用一种"队列"中使用WebSocket. 只有两个用户时,一切都按预期工作.当第三个登录时(我的意思是,我打开一个新选项卡)时,他的信号启动请求正在待处理,其他用户无法再使用应用程序. 所有浏览器都在发生:如果我打开3个镀铬标签,或3个Firefox,或2个Chrome或1个Firefox,或2个Firefox和1个Chrome. 我的代码与SignalR教程提供的代码相同:"从信号2和MVC 5开始. 有人可以解决这个问题吗?我开始认为这是IIS的限制,但我不是100%确定的.我正在使用最后的SignalR版本(2.3.0),4.6.1 ASP版本(我已经在IIS配置中启用了Websockets). 我找到了一个类似的问题( Signalr开始待处理)给出答案. javascript(客户端)代码: var attendHub = $.connection.attendHub;
6 2024-04-26
编程技术问答社区
SignalR客户端连接错误(UWP和JavaScript客户端)。
我都有一个简单的UWP应用程序在Visual Studio中运行的本地计算机和一个简单的AngularJS Spa.我也有一个基于OWIN的自托管服务器在服务面料群集中运行.服务器使用Web API和Signalr. 当我在本地计算机上托管服务面料群集时,UWP应用程序和Angular应用程序可以打开与服务器上的SignalR Hub的连接.当我在Azure上托管服务面料群集时,客户端无法连接到SignalR Hub.我得到了:failed: Error during WebSocket handshake: Unexpected response code: 400 启动类中的服务器端代码: public void Configuration(IAppBuilder appBuilder) { HttpConfiguration httpConfig = this.ConfigureWebApi();
18 2024-04-26
编程技术问答社区
SignalR 连接不会在单例类中启动
我已经在Singleton类中设置了Signalr连接,因此我可以在整个项目中使用相同的连接.问题在于连接永远不会启动,并且代码永远不会超越行await hubConnection.Start(),但是当我在单个类之外执行此操作时,该连接是在即时启动的.我想知道我在做什么错. 这是我对单身班的定义: public sealed class ProxySubscriber { private static volatile ProxySubscriber instance; private static object syncRoot = new Object(); private IHubProxy chatHubProxy = null; private HubConnection hubConnection = null; public event Action OnConnect; private
16 2024-04-26
编程技术问答社区
C#在独立的线程上创建表单,而不是无形式的应用程序
我目前正在创建一个无形式的C#应用​​程序,该应用程序将充当SignalR客户端.目的是让客户在背景中静静地运行并在信号触发时显示形式. 目前,我遇到了一个显示GUI的问题.由于SignalR需要异步运行,而且我不能具有异步Main()方法,因此我目前必须使用Task.ContinueWith static void Main() { _url = "https://localhost:44300"; var hubConnection = new HubConnection(_url); var hubProxy = hubConnection.CreateHubProxy("HubName"); hubConnection.Start().ContinueWith(task => { if (task.IsFaulted) { MessageBox.Show("There
0 2024-04-26
编程技术问答社区
C# MVC-使用 SignalR 从服务器发送消息给调用者
我使用SignalR-2.2.1从客户端到服务器的请求.该请求后,服务器将结果将结果发送回呼叫者. 这是我的JavaScript代码: $(document).ready(function () { var myHub = $.connection.signalHub; myHub.client.receive = function (tmp) { var obj = $.parseJSON(tmp); //do something }; $.connection.hub.start().done(function () { $('#xxxxx').click(function () { var form = $("form"); form.submit(); myHub.server.sendSomething();
4 2024-04-26
编程技术问答社区
SignalR在协商后停止,没有ping、连接或进行任何长时间的轮询XHR请求。
我正在使用Signalr 1.1.2将SQL用作背板,并且经常(例如页面加载的70%),Signalr fires of Connectiate请求(不会失败)和仅停止,而没有发生任何事情.我发现与jquery.validation.js有一些冲突 因此,我更新了:jQuery,jQuery验证和jQuery对最新版本的Unimtrusive Ajax,但仍然发生了, 其他时间正确工作时,我可以看到一些XHR请求: 谈判 连接 ping 在 上进一步进行了长时间的投票请求 这是我的枢纽: public class NotificationsHub : Hub { public override Task OnConnected() { Groups.Add(Context.ConnectionId, CurrentUser.UserId.ToString()); return base.OnCon
2 2024-04-26
编程技术问答社区
System.ObjectDisposedException。无法访问一个被处置的对象, ASP.NET Core 3.1
我正在使用ASP.NET Core 3.1中使用SignalR编写API.我是.NET核心的新手,并且也是SignalR的新手.我正在执行在交易中运行的MongoDB(ATLAS)查询问题.看来事务会议在查询执行之前就到期了.我很确定这是一个async/await问题,但似乎无法修复它. 我的集线器方法看起来像这样: public async Task UpdateProfile(object profileDto) { try { ProfileDTO profile = ((JsonElement) profileDto).ToObject(); _profile.UpdateProfile(profile); return true; } catch { return false; } } 和_profile.UpdateProfile()方法看起来像这样: publi
14 2024-04-26
编程技术问答社区
信号灯和标签 , 窗口 , 克隆的框架?
我创建了一个简单的应用程序,该应用程序接受从客户端接受短信,然后回复该特定连接:"嘿,我收到了您的消息",除此之外,还将消息传播给所有其他信息. 代码: 1 protected override Task OnConnected(IRequest request, string connectionId) 2 { 3 return Connection.Send(connectionId, "Welcome!"); 4 } 5 6 protected override Task OnReceived(IRequest request, string connectionId, string data) 7 { 8 Connection.Send(connectionId, "Connection " + connectionId + " I got y
4 2024-04-26
编程技术问答社区
SignalR:在发送数据之前必须启动连接。在.send()之前调用.start()。
直到最近才开始使用Signalr,我几天前才开始使用此功能,现在无法锻炼出什么问题. 我有我的枢纽: [HubName("roleManagementHub")] public class RoleManagementHub : GenericHub { public RoleManagementHub(ICurrentlyViewingUserService service) : base(service) { } } 扩展了我创建的通用集线器: public class GenericHub : Hub where TEntity : class, IBusinessObject { private readonly ICurrentlyViewingUserService service; public GenericHub(ICurrentl
10 2024-04-26
编程技术问答社区
使用 Redis 背板的 Signalr 无法传播信息
我有一个.NET 4.5 MVC应用程序,我最近将其移至AWS,因此我们需要在SignalR实现中添加背板.我遵循了 https:/https:/https://learn.microsoft.com/en-us/aspnet/signalr/overview/performance/scaleout-with-redis .我已经安装了Nuget软件包,当前的配置看起来像: [assembly: OwinStartup(typeof(SignalrBootstrapper))] namespace app { public class SignalrBootstrapper { public void Configuration(IAppBuilder app) { var scaleoutConfig = new RedisScaleoutConfiguration(ConnectionStrings.Re
18 2024-04-26
编程技术问答社区
当使用自定义解析器时,SignalR改变DisconnectTimeout
在运行SignalR时,我正在使用自定义解析器来使用依赖项注入. 但是在此之后,似乎没有使用我的DisconnectTime和keepalive值.我已经阅读了一些评论,即配置被忽略,然后使用自定义解析器.但是设置globalhost.spentendentyencyResolver应该可以解决问题.但是更改后,断开超时似乎仍然是30秒. 代码: var resolver = new NinjectSignalRDependencyResolver(Program.kernel); GlobalHost.DependencyResolver = resolver; GlobalHost.Configuration.DisconnectTimeout = TimeSpan.FromSeconds(9); GlobalHost.Configuration.KeepAlive = TimeSpan.FromSeconds(3); app.Map("/signalr", map =
2 2024-04-25
编程技术问答社区
如何使用SignalR向Blazor服务器中的特定用户发送消息?
我已经使用Blazor Server和带有数据库的SignalR实现了一个简单的公共聊天室系统,以存储用户名和消息.在系统用户中,仅通过输入其名称加入聊天,出现聊天的UI. 现在,我想要的是添加另一个功能,其中可以将消息发送给该公共聊天室中存在的特定用户. 任何帮助都会很棒,谢谢. 以下是我的公共聊天室代码. 以下是我的枢纽 public class Chat:Hub { public async Task SendMessage(Message message) { await Clients.All.SendAsync("Receiver", message); } } 以下是保存用户名和消息的代码 public string MsgBody { get; set; } public string UserName { get; set; }
12 2024-04-25
编程技术问答社区
如何在Azure网络应用程序上部署信号R自主机服务器
我是Azure的新手,并且我有一个在Azure Web应用程序上运行的Web应用程序,并且我的Signal-R Self Host作为控制台应用程序.我想将信号r s self主机Conbsole应用程序部署到Azure.我需要采取什么步骤? 解决方案 @esther fang, 请参考下面的教程,需要注意的一件事是,您需要手动为您的网站启用Web插座. http://wwww.asp. net/signalr/概述/部署/使用signalr-with-with-azure-web-stites Quote: 将Signalr Web应用程序部署到Azure应用程序服务 Signalr不会添加任何特定的并发症来部署 应用于Azure而不是部署到本地服务器.一个 使用SignalR的应用程序可以在无需任何任何的Azure中托管 配置或其他设置的更改(尽管Websockets 支持,请参阅下面的Azure应用服务上的启用Websocket.) 教程,您将
4 2024-04-25
编程技术问答社区
多个不同配置的SignalR集线器
我遇到了我需要具有不同配置的多个SignalR Hub(至少2个)的情况. 当前使用v1.1.0,我只能做以下所有配置所有集线器的事情: GlobalHost.Configuration.ConnectionTimeout = TimeSpan.FromSeconds(30); 是否可以为多个集线器设置不同的配置? 解决方案 所有集线器共享相同的连接对象,因此它们都共享相同的配置. 如果您想拥有1个服务器,但是用于集线器的多个连接配置,则可以执行以下操作: app.MapHubs(yourPathToConnectionWithConfigurationA, new HubConfiguration { Resolver = MyResolverWithConfigurationA }); app.MapHubs(yourPathToConnectionWithConfigurationB, new HubConfiguration {
0 2024-04-25
编程技术问答社区
如何仅序列化字典#39;将值转换为json(使用json.net)
使用JSON.NET序列化字典作为其值列表的最简单方法是什么? 序列化是由Signalr而不是我完成的.因此,我需要一些类似属性的方式或自定义合同解析器或类似的东西. 字典对我在服务器端更适合我,但是对于客户端上的数据网格的绑定,平坦的对象会更好. 谢谢 解决方案 您是否正在寻找类似的东西; JsonConvert.SerializeObject(dictionary.Values.ToList());
2 2024-04-25
编程技术问答社区
SqlDependency 不会在插入行(或更新或删除)时触发
在接下来的几个小时内将我的头撞在墙上后,我慢慢开始意识到问题所在一个数据库,,但由于某种原因,我所做的触发器告诉我,当数据库发生更改时,当插入,尿布或发生的任何事情时,数据库完全不会发射.该桌子的服务经纪人已打开. 这是所涉及的代码: namespace WebApplication.SignalR_Data { public class NotificationRepository { public NotificationInfo GetData() { using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["ReservationDbContext"].ConnectionString)) { connection.Open();
0 2024-04-25
编程技术问答社区
使用OWIN的Autofac-SignalR。 获得对ContainerBuilder的引用
我有一个使用AutoFac的现有MVC 4应用程序,并且我还有其他包含AutoFac模块的程序集.如果没有SignalR/AutoFac集成,就IOC而言,我的应用程序非常完美.我添加了我试图通过构造函数将依赖项注入依赖项的SignalR Hub.我遵循了文档,并实现了代码示例. signalr.html 导致以下类别的类别: public class SignalRConfig { public void Configuration(IAppBuilder app) { var builder = new ContainerBuilder(); var config = new HubConfiguration(); Assembly thisAssembly = typeof(SignalRConfig).Assembly; builder.RegisterHubs(thisAsse
6 2024-04-25
编程技术问答社区
从web->web api->console app再返回的最佳通信方式是什么?
我启动一个小型代码项目以从过程中学习,但是我不确定不同部分之间交流的最佳方式是什么. 首先,我有一个纯HTML/JS客户端,用户需要经常进行实时更新. 其次,我正在考虑运行Web API应用程序来提供数据. 第三我运行了一个控制台应用程序,需要与Web API应用程序进行通信. 因此,我正在考虑从客户端 - > Web API->控制台应用程序一直使用Websockets,但是我很难使其正常工作.我可以使Console应用程序作为服务器工作,但是我不知道如何使Web API作为客户端工作,因此当它旋转时,可以与控制台应用程序建立连接,并保持开放式连接以进行通信,虽然它会根据请求向客户提供数据. 我尝试了不同的实现,但我最终使用了Signalr,因为这似乎是人们今天使用的:) 由于我有所有这些问题,因此我想知道是否有更好的方法来满足我的要求? 如果Websocket(使用SignalR)是要走的路,您可以提供一些与工作示例的链接?我尝试了Google的所有顶级链
10 2024-04-25
编程技术问答社区
在用SignalR广播消息时忽略一个客户端
我想忽略提出请求的客户端,以广播消息我的Web应用程序.我似乎唯一可以做到这一点的方法是缓存当前用户的ConnectionID: public class BroadcastHub : Hub { public override Task OnConnected() { System.Runtime.Caching.MemoryCache.Default.Set(HttpContext.Current.User.Identity.Name + "-connectionId", Context.ConnectionId, new CacheItemPolicy() { Priority = CacheItemPriority.Default, SlidingExpiration = TimeSpan.FromHours(1), AbsoluteExpiration = MemoryCache.InfiniteAbsoluteExpiration })
2 2024-04-25
编程技术问答社区
在Raspberry Pi Mono项目中无法从SignalR组件中加载HubConnection
我正在尝试在Raspberry Pi中构建一个项目,该项目通过SignalR与我的Azure服务器通信.在从事Xamarin项目的同时,我在一个单声道项目中使用了SignalR,并取得了成功. 出于测试目的,我写了一小部分代码. using System; using Microsoft.AspNet.SignalR.Client; namespace testSignalr1 { class Program { static void Main() { var hubConnection = new HubConnection("******"); var serverHub = hubConnection.CreateHubProxy("HubTest"); serverHub.On("broadcastMessage", message => System.Console.WriteLine(mess
10 2024-04-25
编程技术问答社区