没有得到分散/不同的角度现场交谈SignalR中的WebAPI(Not getting distri

2019-10-23 00:49发布

我很新的SignalR,我试图将其与AngularJS网站和整合的WebAPI。 我跟着马丽娟这个例子开始。 但是,正如我所说,我工作的网站将生活在不同的服务器到的WebAPI项目上。

在我的开发环境我已经建立了角本地站点,在IIS托管在localhost:60000 / 127.0.0.1:60000和的WebAPI住在localhost:(在VS2013,使用IIS快递)31374这是模拟2不同服务器的项目将居住。

在我的角度项目我想通过执行以下操作连接到SignalR枢纽:

var connection = $.hubConnection();

$.connection.hub.url = "http://localhost:31374/signalr";

//$.connection.url = "/signalr";
//$.conenction.baseUrl = "http://localhost:31374";

this.proxy = connection.createHubProxy('foos');

console.clear();
// start connection
console.log(connection);
connection.start();

this.proxy.on('newFoo', function (data) {
    $rootScope.$emit("newFoo", data);
});

在控制台的结果看起来是这样的:

在我的代码,你可以看到,我想设置枢纽URL(以及评论仅低于它,我试图手动设置连接对象的属性。)但是,在截图中可以看到,无论是网址或者是基本URL我将其设置为,实际上仍基本URL指向回在现场角http://127.0.0.1:60000/ ,以代替HTTP://本地主机:31374 / 。

我在想什么?

Answer 1:

这一套了看起来有点过。 具体而言,也许你的connection.start()调用是不正确的。 我在角与以下安装的正常工作做到了这一点与跨域服务器

var proxy;

$(function () {

    $.connection.hub.url = 'http://localhost:31374/signalr';

    $.connection.hub.start({ xdomain: true })
        .done(function () { 
            console.log('Connected. connectionId : ' + $.connection.hub.id); 
        })
        .fail(function () {
            console.log('Could not connect!');
        });

    proxy = $.connection.yourServerHubName;

    proxy.client.yourClientHubMethod = function () {
        // your client hub functions
    };
});

此外,一定要检查您加载在你的HTML正确生成的.js文件

<script src="//localhost:31374/signalr/hubs"></script>


文章来源: Not getting distributed/disparate Angular site to talk to SignalR in WebAPI