Signalr Owin简单的例子,javascript客户端没有被调用
我有一个5.3.0版本的Signalr自托管版本,该版本正在升级到较新版本的SignalR. 使用 https://github.com/signalr/signalr/signalr/wiki/wiki/wiki/selfs-host-host/a >示例我创建了一个简单的示例,但是我无法正常工作. 我可以在服务器上的集线器上连接并在集线器上调用方法,但是我无法拨打HUB来拨打JavaScript客户端. 在提琴手中查看它时,我再也看不到轮毂回来了. 这是代码 using System; using Microsoft.AspNet.SignalR; using Microsoft.Owin.Hosting; using Owin; namespace ConsoleApplication3 { class Program { static void Main(string[] args) { string url = "h
2 2023-05-15
编程技术问答社区
Context.User.Identity.Name在SignalR 2.X.X中为空,如何解决?
这让我发疯. 我正在使用最新的SignalR版本(2.0.2).这是我的集线器代码(连接) public override Task OnConnected() { //User is null then Identity and Name too. Connections.Add(Context.User.Identity.Name, Context.ConnectionId); return base.OnConnected(); } 这是我的控制器的登录方法: [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public async Task Login(LoginViewModel mod
2 2023-05-15
编程技术问答社区
处理Siganlr中的并发连接
我正在使用.NET Framework 4.5.2,我将开始制作一个通知系统,该通知系统将Web应用程序发送到从Windows表单桌面应用程序连接的用户中. 调查后,我发现合适的解决方案正在使用SignalR,因为它支持在将通知发送给连接的客户端之前过滤通知. 但我担心的是: 当我在Web应用程序中创建我的集线器类时,我实现了连接的方法,该方法将检测到连接到服务器以收到通知的任何客户无法在生产中实现的解决方案,因为这是在内存变量(词典)中设置连接用户的可靠的.在我的情况下,连接用户的数量可能为20,000 或结束,将来可能会变大.我需要了解跟踪所有连接用户的最佳方法,同时又有下注方式来处理并发请求而没有任何可扩展性问题.我是新手,我必须做出非常快的决定. 我还需要知道在hub类中可以过度的otreconnect方法的用法. 我还需要知道如何处理连接以在IIS出于任何原因重新启动Internet应用程序的情况下不会丢失. 解决方案 映射连接到与用户可以通过多
16 2023-04-27
编程技术问答社区
跨产地的SignalR连接在协商后停止
我有一个可用视图的MVC 5应用程序,并且Web API 2应用程序为服务层(.NET 4.5). Web API应用程序使用SignalR 2.1.2在处理帖子中返回进度,以返回服务API.这两个部署到不同的域,因此我根据 asp.net 教程文章. [assembly: OwinStartup(typeof (Startup))] namespace MyApp.Service { public class Startup { public void Configuration(IAppBuilder app) { app.Map("/signalr", map => { //worry about locking it down to specific origin later map.UseCors(CorsOpti
12 2023-04-07
编程技术问答社区
如何在SignalR 2.x单元测试框架中为模拟的客户端添加组支持?
我正在使用MOQ为我的Signalr 2.x应用程序建立一个Unittest框架. 我目前正在嘲笑我的客户: var mockClients = new Mock(); Clients = mockClients.Object; 为了进行测试,我需要按组测试发送消息: Clients.Group(groupName).sendSomeMessage(message); 如何将小组支持添加到我的被嘲笑的客户? 解决方案 检查以下内容: public void HubsGroupAreMockable() { var hub = new MyTestableHub(); var mockClients = new Mock>(); var
2 2023-04-01
编程技术问答社区
使用GlobalHost.ConnectionManager.GetHubContext从集线器外部调用客户端方法的SignalR不起作用。但是从集线器内部调用却可以
我正在尝试从.NET Web API控制器操作中调用客户端方法. 我可以这样做吗? 我唯一能找到与我想要做的接近的帖子是: signalr + signalr + posting通过操作方法给集线器的消息 在其中使用globalhost.connectionmanager.gethubcontext. 当我在Web API操作中尝试该操作时,不会抛出任何错误,但是在客户端端从未调用过" MethodInjavaScript"方法. Public ActionResult MyControllerMethod() { var context = GlobalHost.ConnectionManager.GetHubContext(); context.Clients.All.methodInJavascript("hello world"); // or conte
26 2023-03-31
编程技术问答社区
SignalR + 通过动作方法向Hub发布消息
我正在使用signalr的枢纽功能( https://github.com/signalr/signalr/signalr/signalr/signalr/a >)向所有订阅客户端发布消息: public class NewsFeedHub : Hub public void Send(string channel, string content) { Clients[channel].addMessage(content); } 通过JavaScript调用"发送"时,此功能正常,但是我也希望Web应用程序发布消息(从ASP.NET MVC操作方法中).我已经尝试实例化一个新对象OB NewsFeedHub并调用发送方法,但是这会导致错误(因为未设置了集线器的基础"连接").有没有连接无连接的轮毂的方法? 解决方案 请注意,自从提出这个问题以来,Signalr API已多次更改.有可能有些答案过时.这并不意味着他们应该在撰写本文时进行投票,因为他们在写作时是正
16 2023-03-26
编程技术问答社区
对SignalR和Castle Windsor进行适当的Hub依赖性寿命管理
我有一些SignalR Hubs,可能需要访问某些瞬态和单身依赖性.挂接集线器的创建很容易,而且工作正常,但是Signalr可以在创建的集线器上进行自己的dispose()调用(),而不是通知依赖关系解析器并让其参与处置. 如果依赖项已注册,这没什么大不了的,但是如果它们注册为瞬态,那么它们将永远不会被处置(如果需要的话),而温莎将保持它们的活力,直到温莎容器为止收集(无论如何Web服务器都关闭时). 我看到了几种可能处理此问题的方法... a)这里有人指出了一种用于Signalr HubdisPatcher类的方法,以便它可以进行适当的处​​置.这不是Signalr标准依赖项验证器的一部分,因此这可能很困难/不可能/ b)可以覆盖或易于更换信号中的其他一些类,以便我们可以亚类HubdisPatcher进行覆盖或替换,并确保使用子类.从我可以看出,这必须是OWIN中间件类HubdisPatcherMiddleware.是否有某种方法可以强迫OWIN注册此类,而是注
2 2023-03-08
编程技术问答社区
带有IoC的SignalR(温莎城堡)--枢纽的哪种寿命?
我只是从SignalR启动,并为SignalR创建了一个自定义解析器,因此我可以使用Windsor Castle Windsor通过集线器构造器注入依赖项. 我假设我只需要注册依赖项,但是我发现在我的应用程序工作之前,也有必要自行注册集线器.这是预期的吗?如果是这样,我应该在轮毂上使用什么寿命? 解决方案 默认情况下,SignalR不会用依赖项解析器注册每个集线器.相反,它使用IAssemblyLocator查找可能包含SignalR Hubs的可用组件.然后,IHubDescriptorProvider搜索用于集线器的所有可用组件,并创建HubDescriptors. 最后,IHubActivator采用HubDescriptor并返回新实例化的Signalr Hub(使用Activator.CreateInstance),除非 与HubDescriptor关联的集线器类型已与依赖关系注册解析器.在后一种情况下,从IHubActivator返回的集线器将直接从依赖项
14 2023-03-08
编程技术问答社区
SignalR,服务器端的方法可以被调用,但客户端的方法不能,只有在生产环境中才可以。
我在.NET网站上成功地为我的新闻通讯发送功能开发了一个枢纽. 服务器过程由集线器调用,然后在发送例程期间,我发送客户端方法以报告进度状态,最后是另一种客户方法来报告例程的结束. 我的开发环境是Win10,IIS 10,VS2013,.NET 4.5 Signalr 2.2.0. 我可以在开发中使用WebSocket并正常工作,但是我的生产服务器是Win 2008R2(IIS 7.5),因此我必须使用ServerSentEvents,在Dev上也工作. 在这里我的客户端代码: $.connection.hub.logging = true; hubConn = $.connection.newsletterHub; hubConn.client.addProgress = function (perc, label) { UpdateProgress(perc, label) } hubConn.client.raiseError = function (mes
16 2023-02-23
编程技术问答社区
SignalR组没有得到数据
嗨,我遇到了一个问题,我的Signalr客户端的signalr客户端没有发送信息. 我以两种方式尝试了这一点,并且都无法正常工作. 在网页上加载客户端将调用服务器以获取组名称,然后在集线器上调用一个方法以加入该组中的用户. javascript ..... var connectionOpen = false; var myHub; $(function () { myHub = $.connection.myHub; myHub.client.showMessage = alertMessage; $.connection.hub.start(function () { connectionOpen = true; joinGroup(); });
32 2023-02-23
编程技术问答社区
**SignalR** SQLDependency Onchanged被多次触发
我有一个带有VS2013和.NET Framework 4.5.1的监视应用程序 ASP.NET MVC ,每次都应该自动刷新实时图表.当我打开浏览器的单个实例时,一切正常,但是当我在同一台计算机上打开另一个选项卡或浏览器时,或者在其他机器上会多次启动 sqldependenty 事件. 这是我的repository.cs public class Repository { private static string conString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString(); public List UpdateTRTakeInData() { try { var lst = new List(); us
16 2023-02-21
编程技术问答社区
SignalR在谷歌浏览器上不起作用
我在项目中将信号R版本从1.1.3更新为2.1.2,但是在更新之后,我发现实现了所有功能在Firefox&Internet Explorer上正常工作,但在Google Chrome上却没有.我已经使用了长纸和相关的解决方案,但是它也无法正常工作,实际上Google Chrome能够发送更新信号,但无法从其他浏览器中接收任何信号. 解决方案 使用版本41.0.2266.2 Canary更新Google Chrome后,它正常工作.
10 2023-02-21
编程技术问答社区
SignalR hub授权属性不工作
我正在使用SignalR将通知发送到Angular.但是我想将其特定于用户.用户使用Azure AD登录.我在集线器上有一个[授权],但授权失败了.但是在我的控制器中它可以正常工作. 我到目前为止尝试过的.我尝试了此服务.从Microsoft网站上进行了addauthentication. https:https://docs. microsoft.com/en-us/aspnet/core/signalr/authn-and-authz?view=aspnetcore-2.2 但是我的控制器无法验证令牌,因为令牌不在URL中,而是在标题中. startup.cs: public void ConfigureServices(IServiceCollection services) { services.AddOptions(); // Add custom configuration/resource files
34 2023-02-18
编程技术问答社区
如果Hub在不同的项目SignalR中,如何连接Hub?
我正在使用SignalR项目,其中我想在WebAPI项目和Web项目中使用中心.因此,我已经创建了一个类库项目并在那实现了集线器. 我的项目结构看起来像: -ChatHub -Hub -Webapi -Website 这是我的枢纽: [HubName("chathub")] public class ChatHub : Hub { public override Task OnConnected() { return base.OnConnected(); } public override Task OnReconnected() { return base.OnReconnected(); } } 当我从网站调用中心时,它运行良好. var chatHub = $.connection.chat
20 2023-02-17
编程技术问答社区
我可以调试SignalR Hub中的OnConnected方法吗?
我在我的ASP.NET项目中有一个集线器,并且我覆盖了连接的方法,我可以在连接方法内调试代码吗?我放了一个断点,但没有射击. public class ConsultasHub : Hub { public override Task OnConnected() { //breakpoint here //some code //[...] return base.OnConnected(); } } } 解决方案 这是一个棘手的.通过设计,如果您没有对集线器的任何订阅,则客户端将无法从服务器中获取任何消息,因此连接连接不会被调用. 我尝试了以下内容: using System; using System.Web; using Microsoft.AspNet.S
6 2023-02-17
编程技术问答社区
在生产服务器中,Signalr总是陷入长时间的轮询。
当我在服务器中托管应用程序时,它会检查服务器端事件,并始终回到长时间的轮询.服务器托管环境是Windows Server 2012 R1和IIS 7.5 如果我们可以解决此问题,是否有? IE10,Chrome 38.0.2125.111和Firefox ..在我进行长时间轮询的所有3个浏览器中,服务器发送的事件被取消.据我了解,他们中很少有人告诉服务器是否在代理和防火墙后面,然后服务器发送的事件可能行不通.由于网站在生产服务器中,我对此没有任何控制. 引起此问题的可能性是什么?如何调试相同? 解决方案 如果您想在IIS 中支持它,则应启用Websocket 这是您需要使其起作用的角色/功能的屏幕截图: 我希望对您有帮助! :) 其他解决方案 Microsoft具有博客文章关于在Server 2008 R2中使用IIS 7.5的SignalR工作.指示可能相似. 更新Signalr应用程序的Web.config文件启用"运行所有请求的所有
12 2023-02-17
编程技术问答社区
在SignalR Hub上使用通用方法
我正在为我的SignalR服务器创建一个集线器类,并想使用一种通用方法,该方法可以从大量的代码行中节省我.但是,当我尝试从xamarin.ios客户端调用服务器代码时,Signalr会给我错误. . 服务器代码 public List SendDataToClient() where T : BusinessEntityBase { return SomeDBManager.GetItems(); } 客户端代码 var list = await hubProxy.Invoke>("SendDataToClient"); 我在这里做错了什么,还是在SignalR Hubs中使用通用方法是不可能的? 解决方案 您无法调用SignalR客户端的通用方法.您会注意到,如果您使用通用senddatatoclient方法运行signalr ghp /path:myassembly.dll对包含集线器的dll,则会收
36 2023-02-17
编程技术问答社区
当我在多个集线器中使用共享连接时,OnConnected方法没有被调用SignalR
我们可以为不同的事物创建多个集线器,并且要连接到每个集线器,我们可以创建具有共享连接的多个客户端侧集线器,以便与所有集线器建立一个连接.现在,出现的问题是,集线器连接的方法没有在每个集线器服务器端代码上升高. public class Hub1 : Hub { public override Task OnConnected() { return base.OnConnected(); } } public class Hub2 : Hub { public override Task OnConnected() { return base.OnConnected(); } } 说,在客户端,我创建了两个轮毂上定义的客户端方法的HUB1和HUB2,然后仅在服务器端调用了一个HUBS ONCONENCENT方法.如果我使用单独的连接
10 2023-02-16
编程技术问答社区
VS2012中的SignalR 2.0注册和依赖注入
我能够与Signalr 1.13一起使用我自己的DI: //Funq container GlobalHost.DependencyResolver = new FunqDependencyResolver(container); RouteTable.Routes.MapHubs(); 现在有了新版本2.0,我被卡住了. using Microsoft.Owin; using Owin; //SignalR 2.0 no longer uses RouteTable.Routes.MapHubs(); [assembly: OwinStartup(typeof(SignalRChat.Startup))] namespace SignalRChat { public class Startup { public void Configuration(IAppBuilder app) { app.MapSignalR(); } } }
4 2023-02-14
编程技术问答社区