我无法从Web API触发SignalR集线器

时间:2019-08-15 03:59:59

标签: asp.net signalr

我已经读了很多关于这一点的文章,并且已经出现了很多答案,但是对我来说还是很幸运的。

我有一个解决方案,其中有2个项目,项目1是Web API,项目2是SignalR网站。

在项目1中,我成功导入了项目2库,并且能够在项目2集线器类上调用静态方法,如下所示:

testsignal.ChatHub.Hit("Name", "Hellow??");

我在项目2集线器方法上有一个断点,我知道它命中了该方法,但是它不能反映在客户端(Web客户端)上

这是我的集线器上的方法:

public static void Hit(string name, string message)
        {

            var context = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();
            context.Clients.All.broadcastMessage(name, message);
        }

我认为我的问题与GlobalHost有关,我尝试在集线器类中创建一个全局属性,以保存GlobalHost,然后在静态方法中使用它,但是因为它是静态的,所以我不能使用它。

我知道WebClient的工作原理,因为集线器上的连接成功,并且我可以在多个打开的浏览器之间“聊天”。

我的启动类如下:

    public void Configuration(IAppBuilder app)
    {
        // Any connection or hub wire up and configuration should go here
        // app.MapSignalR();
        //app.MapSignalR(new HubConfiguration() { EnableJSONP = true });

        //app.MapSignalR(new HubConfiguration() { Resolver = GlobalHost.DependencyResolver });

        HubConfiguration config = new HubConfiguration();
        config.EnableJavaScriptProxies = true;


        app.MapSignalR(config);


    }

有什么想法吗?

0 个答案:

没有答案