Невозможно отправить данные, если соединение не находится в состоянии «Подключено» - PullRequest
0 голосов
/ 21 декабря 2018

Выполнение действительно простого вызова для настройки подключения / остановки с использованием SignalR в Angular 6, где у меня был следующий код:

signalR.helper.ts

  public static setupHub<T>(hubUrl: string, eventName: string, callback: (data: T) => void, ...params: SignalRParam[]): HubConnection {
    const token = localStorage.getItem(appConstant.token);
    const url = this.buidlUrl(hubUrl, ...params);
    const connection = new HubConnectionBuilder()
        .withUrl(url,
            { transport: HttpTransportType.WebSockets, accessTokenFactory: () => token })
        .build();
    environment.production && connection.start();
    !environment.production && connection.start().catch(err => console.error(err.toString()));
    connection.on(eventName, callback);
    return connection;
}

Если я пытаюсь войти на своей странице, я получаю эту ошибку на консоли:

signalR.helper.ts: 19 Ошибка: невозможно отправить данные, если соединение не находится в состоянии «Подключено».

Я новичок в SignalR и Angular, и почему я продолжаю получать эту ошибку?

1 Ответ

0 голосов
/ 14 июня 2019

Пожалуйста, предоставьте более подробную информацию, такую ​​как Startup.cs, или где вы добавили следующие строки в *.cshtml:

<script src="~/lib/signalr/dist/browser/signalr.js"></script>
<script src="~/js/chat.js"></script>

Если вы не переходите на страницу *.cshtml, котораяимеет вышеупомянутый, то SignalR не сможет создать концентратор для вас.Если вы хотите, чтобы он был доступен в веб-приложении, поместите вышеприведенное в _Layout.cshtml.

. Это приведет к таким ошибкам:

POST http://myserver.com/chatHub/negotiate 404 (Not Found)
(anonymous) @ XhrHttpClient.ts:84
XhrHttpClient.send @ XhrHttpClient.ts:30
Utils.ts:179 [2019-06-14T19:21:39.774Z] Error: Failed to complete negotiation with the server: Error: Not Found
ConsoleLogger.log @ Utils.ts:179
Utils.ts:179 [2019-06-14T19:21:39.774Z] Error: Failed to start the connection: Error: Not Found
Error: Cannot send data if the connection is not in the 'Connected' State.

Для получения более подробной информации см .:

Обзор: https://docs.microsoft.com/en-us/aspnet/core/signalr/introduction?view=aspnetcore-2.2

Концентраторы: https://docs.microsoft.com/en-us/aspnet/core/signalr/hubs?view=aspnetcore-2.2

Клиенты: https://docs.microsoft.com/en-us/aspnet/core/signalr/javascript-client?view=aspnetcore-2.1#call-hub-methods-from-client

...