Обратный вызов SignalR не выполняется, даже если он получает триггер от backEnd. Как это исправить? - PullRequest
0 голосов
/ 15 мая 2019

Я вызываю соединение signalR и слушаю метод callBack. Журнал консоли показывает, что метод обратного вызова был запущен, но код внутри метода обратного вызова не выполняется.

Журнал консоли печатается следующим образом:

SignalRConnection.proxy.on вызван. Вызов слушателя next () ...

вызывающий слушатель next ().

Фрагмент кода:

c.invoke('ABC', value, apiToken).then(() => {
        console.log('ABC Connected');
});

// метод обратного вызова.

c.listenForRaw('receiveABCNotification')
        .subscribe((data: any[]) => {
          console.log('Data received from SIGNALr', data);
});

Что я должен сделать, чтобы обеспечить выполнение кода внутри метода слушателя (метода callBack)?

1 Ответ

0 голосов
/ 15 мая 2019

Вы можете посмотреть мой пример кода. Вы должны использовать connection.on & connection.send для отправки и получения сообщения

public class GameHub : Hub
{
    public async Task UserLoggedIn(string userName)
    {
        await Clients.All.SendAsync("SendUserLoggedInMessage", userName);
    }
}

Тогда в JS код

<script>
    const connection = new signalR.HubConnectionBuilder()
        .withUrl("/gameHub")
        .configureLogging(signalR.LogLevel.Information)
        .build();

    connection.start().then(() => {
        console.log("connected");
    });

    // listen on SendUserLoggedInMessage
    connection.on("SendUserLoggedInMessage", (userName) => {
        console.log("User Logged In" + userName);
    });

    // invoke UserLoggedIn method
   connection.send("userLoggedIn", username)
              .then(() => console.log("something"));

</script>

Примечание: listenForRaw откуда это взялось? Вы уже определились на стороне сервера?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...