早上好,我希望有人能指出我正确的方向。
我正在从angularJs
迁移到Angular6
,并想使用@aspnet/signalr npm package
。
我正在尝试建立signalR
连接并遇到问题。我以前使用jquery
signalR
进行的连接如下。
$.connection.hub.url = 'https://test.localhost.com/api/signalr';
$.connection.hub.qs = "Access-Control-Allow-Origin=*";
var hub = $.connection.servicelog;
hub.client.newInformation = function (data) {
//do something
};
hub.client.newInformation2 = function (data) {
//Do something else
};
$.connection.hub.start().done(function () {
$log.debug('connection started to signalrHub app info');
});
您会看到signalr
在另一个域上,因此添加了标题。
我的中心名称叫'servicelog'
我无法弄清楚如何在新的Angular 6项目中使用HubConnection
或HubConnectionBuilder
进行设置。
let connection = new signalR.HubConnectionBuilder().withUrl('https://test.localhost.com/api/signalr' + '/servicelog')
.build();
connection.start().then(()=>{
console.log('Hub connection started');
}).catch((err)=>{
console.log('Error establishing connection - ' + err);
});
我也找不到在哪里设置访问控制标头。
任何帮助将不胜感激。
答案 0 :(得分:0)
import { HubConnection, HubConnectionBuilder } from '@aspnet/signalr';
class yourcomponentclass
{
private _hubConnection: HubConnection;
ngOnInit(): void {
this._hubConnection = new HubConnectionBuilder()
.withUrl('url placed here').build();
this._hubConnection
.start()
.then(() => console.log('Connection started!'))
.catch(err => console.log('Error while establishing connection :()'));
this._hubConnection.on('BroadcastMessage', (type: string, rating: number[]) => {
}
}
});
}