如何在hubpipleline外部使用SignalR集线器实例
问题描述:
我正在使用SignalR向所有客户端广播消息。我需要触发广播我的HUB类即东西之外象下面这样:如何在hubpipleline外部使用SignalR集线器实例
var broadcast = new chatHub(); broadcast.Send("Admin","stop the chat");
我收到错误消息:
使用不是由HubPipeline创建不支持集线器实例。
答
您需要使用GetHubContext
:
var context = GlobalHost.ConnectionManager.GetHubContext<chatHub>();
context.Clients.All.Send("Admin", "stop the chat");
这更详细的描述http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-server#callfromoutsidehub。
谢谢,我发现它 – 2013-02-28 06:27:49
“context.Clients.All.Send”不会向调用者广播回来,而是只发送给其他人。有任何想法吗? – user384080 2013-12-28 05:21:09
如果您使用的是'GetHubContext',则没有调用者,因为这意味着在Hub外部使用。 'Clients.All'应该解决当前连接到Hub的每个客户端。 – halter73 2013-12-30 22:32:47