Я пытаюсь подключиться к концентратору сигнала R с помощью клиента javascript. Кажется, я могу подключиться, но сразу отключился.
Некоторые журналы:
2020-03-11T11:43:47.974Z] Отладка: Отправка запроса подтверждения. Utils.js:209 [2020-03-11T11:43:47.978Z] Информация: Использование HubProtocol 'json'. home.component.ts:115 Ошибка при установлении соединения с сигналом r. Ошибка: ошибка при разборе ответа на рукопожатие: TypeError: правая часть «instanceof» не может быть вызвана в HubConnection.push../node_modules/@aspnet/signalr/dist/esm. /HubConnection.js.HubConnection.processHandshakeResponse (HubConnection.js:372) в HubConnection.push../node_modules/@aspnet/signalr/dist/esm/HubConnection.js.HubConnection.processIncomingData (HubConnection.js:322) в WebSocketTransport. HubConnection.connection.onreceive (HubConnection.js:65) в WebSocket.webSocket.onmessage [как __zone_symbol__ON_PROPERTYmessage] (WebSocketTransport.js:107) в WebSocket.wrapFn (zone-evergreen.js:1191) в ZoneDelegate.invokeTask (zone-evergreen .js:391) в Object.onInvokeTask (core.js:30885) в ZoneDelegate.invokeTask (zone-evergreen.js:390) в Zone.runTask (zone-evergreen.js:168) в ZoneTask.invokeTask [как вызов] (зона-evergreen.js:465)
Я получаю указанную выше ошибку при подключении к концентратору SinalR. Ниже приведен код моего клиента:
this.hubConnection = new HubConnectionBuilder()
.withUrl('http://localhost:5000/signalr', {
accessTokenFactory: () => localStorage.getItem('token')
})
.configureLogging(LogLevel.Debug)
.build();
this.hubConnection
.start()
.then( () => console.log(this.hubConnection.state))
.catch( error => console.log('Error establishing connection to signal r ', error));
this.hubConnection.on('TotalTrucks', trucks => {
console.log('HERE = ', trucks);
this.tucks = trucks;
});
Обратите внимание, что у меня есть фоновая служба, которая отправляет сообщения всем подключенным клиентам каждую минуту:
public class OtcWorker : BackgroundService
{
private readonly IHubContext<OtcHub> _hubContext;
private IServiceScopeFactory ServiceScopeFactory { get; set; }
public OtcWorker(IHubContext<OtcHub> hubContext, IServiceScopeFactory serviceScopeFactory)
{
_hubContext = hubContext;
ServiceScopeFactory = serviceScopeFactory;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
using (var scope = ServiceScopeFactory.CreateScope())
{
var services = scope.ServiceProvider;
var context = services.GetRequiredService<WeighbridgeDataContext>();
while (!stoppingToken.IsCancellationRequested)
{
var result = await context.ReceiptTransactions.ToListAsync();
await _hubContext.Clients.All.SendAsync("TotalTrucks", result.Count);
await Task.Delay(3600, stoppingToken);
}
}
}
}
@microsoft/signalr
. docs.microsoft.com/en-us/aspnet/core/signalr/ - person Kiril1512   schedule 11.03.2020import * as signalR from "@aspnet/signalr";
наimport * as signalR from "@microsoft/signalr";
и установить пакет через npm. - person Kiril1512   schedule 02.07.2020