C# 多个网站服务器端客户端.All.receiveNotification质询与信号器
因此,我有两个使用SignalR的网站,我的Global.asax文件中都有以下内容:C# 多个网站服务器端客户端.All.receiveNotification质询与信号器,c#,asp.net,asp.net-mvc,signalr,C#,Asp.net,Asp.net Mvc,Signalr,因此,我有两个使用SignalR的网站,我的Global.asax文件中都有以下内容: HubConfiguration hubConfig = new HubConfiguration(); hubConfig.EnableCrossDomain = true; RouteTable.Routes.MapHubs(hubConfig); 我有一个服务器端事件端,并且我获得了向所有侦听客户端发送消息的中心上下文: var signalrContext = GlobalHost.Connect
HubConfiguration hubConfig = new HubConfiguration();
hubConfig.EnableCrossDomain = true;
RouteTable.Routes.MapHubs(hubConfig);
我有一个服务器端事件端,并且我获得了向所有侦听客户端发送消息的中心上下文:
var signalrContext = GlobalHost.ConnectionManager.GetHubContext<Notifications.OfferHub>();
signalrContext.Clients.All.receiveNotification("hello world");
var signalrContext=GlobalHost.ConnectionManager.GetHubContext();
signalrContext.Clients.All.receiveNotification(“hello world”);
同样的事件发生在两个网站的服务器端,我想向所有监听客户端广播这个跨域事件。我认为这是不可能的服务器端,因为我将无法获得两个网站的HubContext更改hub.url服务器端
除非有人有其他建议?好吧,我花了一分钟才意识到我在这里做了什么。感谢大卫·福勒的帮助和出色的信号员!最后,我将每个网站中的ServiceReference添加到另一个网站中的web服务,并调用“广播”WebMethod。web服务webmethod仅获取当前的SignalR上下文,并将我的消息广播给在各自网站上侦听的所有客户端。仅仅因为两个项目中都存在该类,并不意味着您的客户端连接到了正确的应用程序。查看此示例感谢dfowler基于您与我共享的示例,如果我正在进行客户端调用,并且可以将集线器的url设置为远程服务器,那么我的情况就不难解决。一种方法是检测哪个网站是客户端调用方,并将url设置为另一个网站。但我有服务器端事件和服务器端数据,我想在所有跨域侦听客户端上传输这些事件和数据……您拥有的根本不是跨域的。我不知道你在期待什么。不能仅仅因为有dll引用,就指望集线器向另一台服务器上的客户端广播。需要有到服务器的活动连接。。。