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

Anu*_*han 4 asp.net-mvc signalr asp.net-web-api

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

Woo*_*oot 6

在api中配置signalr时,您需要设置客户端应该监听的URL.在下面的示例中,如果我的api是http:// localhost:55985,那么我的客户端将侦听的URL将是http:// localhost:55985/signalsr

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());
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

然后在客户端项目中将配置它的javascript signalr连接,就像这样

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

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

        $.connection.hub.start();
    });
</script>
Run Code Online (Sandbox Code Playgroud)

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