我正在尝试在网站上使用 signalR。 SignalR 是一项自托管服务。 SignalR 网址:http://localhost8080:/signalr
网站正在运行@ http://localhost:31775/
我在浏览器控制台上收到错误
GET http://localhost:31775/signalr/negotiate?connectionData=%5B%5D&clientProtocol=1.3&_=1442784297380 404 (Not Found)
此错误告诉我下面的代码尝试生成的代理正在使用网站 url,即相对路径。但是我想使用托管我的 signalR 服务的绝对路径。
AngularJS 工厂
app.factory("signalRService", ['$', '$rootScope', function ($, $rootScope) {
var proxy;
var connection;
return {
connect: function () {
connection = $.hubConnection();
proxy = connection.createHubProxy('myHub');
connection.start();
proxy.on('addMessage', function (tags) {
$rootScope.$broadcast('addMessage', tags);
});
},
send: function () {
proxy.invoke('send');
},
};
}]);
我还为此添加了 javascript 引用。
<script src="js/jquery.signalR-2.0.3.min.js"></script>
验证我的自托管是否正在运行文件。我检查了http://localhost:8080/signalr/hub在浏览器上
最佳答案
您缺少的是代理的一些配置:
connection = $.hubConnection('http://localhost:8080/signalr');
如何概括该代码段(url 可以是您的 connect
方法的参数,或者任何适合您的 Angular 策略的内容)取决于您。
关于javascript - 尝试连接跨域托管信号服务时,signalR 连接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32684566/