如何在我单独的Api和mvc客户端项目中使用SignalR?

时间:2017-04-20 11:47:16

标签: asp.net-mvc asp.net-web-api signalr

我正在尝试在我的客户端项目中使用SignalR。我想要做的是当我的api中的方法执行时,我想在我的客户端项目中显示通知。为此我该如何设置两个项目?有关更多说明。 假设我有一个名为MethodA()的api方法,当每次执行该方法时,客户端项目应该获得通知。我怎么能这样做?

1 个答案:

答案 0 :(得分:6)

在api中配置signalr时,您需要设置客户端应该监听的URL。在下面的例子中,如果我的api是http://localhost:55985,那么我的客户将会收听的网址是http://localhost:55985/signalr

namespace MyApplication
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            // Any connection or hub wire up and configuration should go here
            app.MapSignalR("/signalr", new HubConfiguration());
        }

    }
}

然后在客户端项目中将配置它的javascript signalr连接,如此

<script type="text/javascript">
    $(function () {

        var hub = $.connection.myHub;
        $.connection.hub.url = 'http://localhost:55985/signalr';

        $.connection.hub.start();
    });
</script>

请记住,您可能需要在开发环境中允许CORS。我不建议您设置项目,以便在生产中允许使用CORS,除非这是您的要求之一。代码中不包括您需要设置的Hub。该信息可以在ere.

找到