使用CORS实现SignalR 2

时间:2015-12-18 12:42:21

标签: asp.net-mvc cors signalr

我有一个在端口64999上运行的应用程序, 它正在向另一个运行在不同端口65420上的应用程序发出信号调用

在启动具有端口65420的应用程序时,我有代码:

public class Startup
{
    public void Configuration(IAppBuilder app)
    {

        app.Map("/signalR", map =>
        {
            map.UseCors(CorsOptions.AllowAll);

            var hubConfiguration = new HubConfiguration
            {
                EnableJSONP = true,
                EnableDetailedErrors=true
            };
            map.RunSignalR(hubConfiguration);
        });
    }

}

从应用程序64999我尝试连接到另一个应用程序,如:

    var connection =$.hubConnection('http://localhost:65420/signalR/hubs');
    var chatHubProxy = connection.createHubProxy('chatHub');

    chatHubProxy.on('getDetails', function (message) {

        $("#Message").html(message);
    });

    connection.start().done(function () {
        chatHubProxy.invoke('sendMessage', "Hello");
    });

我无法理解如何打电话。

1 个答案:

答案 0 :(得分:0)

我真的在互联网上搜索,并在https://cmatskas.com/signalr-cross-domain-with-cors/找到答案。

我现在所做的是在应用程序64999中更改了集线器的位置

  <script src="http://localhost:65420/signalr/hubs"></script>

我的javascript代码就像:

    $.connection.hub.url = 'http://localhost:65420/signalr';
    var chat= $.connection.chatHub;
    chat.client.getDetails = function (car, speed, overSpeed) {
        $("#Message").html(message);
    };

    $.connection.hub.start().done(function () {
        chat.server.sendMessage("Hello World");
    });