Клиент не получает сообщения в приложении SignalR 2.2 - PullRequest
0 голосов
/ 09 мая 2019

В моем приложении я хочу обновить клиентов, когда пользователь входит в систему, но клиенты не получают сообщения из концентратора.

Я создал класс-концентратор:

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

UserLoggedIn выполняется, когда пользователь входит в систему, я устанавливаю точку останова, и метод UserLoggedIn для GameHub определенновызываемыйвызывается на GameHub

Кто-нибудь может увидеть, что я здесь делаю неправильно?

1 Ответ

1 голос
/ 12 мая 2019

Вы не получили сообщение для браузера в режиме инкогнито, потому что вы только слушаете сигналер, но не вызываете его, поэтому я бы изменил ваш код на

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>
...