如何在hubpipleline外部使用SignalR集线器实例

如何在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

+0

谢谢,我发现它 – 2013-02-28 06:27:49

+4

“context.Clients.All.Send”不会向调用者广播回来,而是只发送给其他人。有任何想法吗? – user384080 2013-12-28 05:21:09

+4

如果您使用的是'GetHubContext',则没有调用者,因为这意味着在Hub外部使用。 'Clients.All'应该解决当前连接到Hub的每个客户端。 – halter73 2013-12-30 22:32:47