通过SignalR直接在Controller Action中运行Hub方法

时间:2014-04-17 05:40:40

标签: c# .net signalr signalr-hub

我有一个类似下面的SignalR:

public class ConnectionHub : Hub
{
    private static readonly ConcurrentDictionary<string, User> Users = new ConcurrentDictionary<string, User>();

    public void GetAddressingResult()
    {
         //some implementation
    }

}

我想直接在控制器方法中调用GetAddressingResult方法。

    //In Home Controller

    [HttpPost]
    public void StartAddressing(string physicalAddress)
    {
        //I want to call GetAddressingResult method just here.
    }

我现在可以这样做,比如在控制器上调用javacsript方法,javascript调用hub方法。但它看起来并不好。此外,我尝试在控制器操作和调用集线器方法中创建一个ConnectionHub实例,而不是像在&#34;&#34;

之外的#34; signalR集线器实例之类的错误。

我使用的是SignalR 1.1.4版本。

我正在寻找最好的方法。

1 个答案:

答案 0 :(得分:0)

您无法创建集线器实例 - 在调用集线器方法时会根据需要创建它们。有关如何从集线器外部调用集线器方法的信息,请参阅以下内容:

http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-server#callfromoutsidehub