Я хочу вызвать метод на стороне клиента из моего концентратора SignalR только один раз, когда клиент впервые загружает веб-страницу. Как мне это сделать?
Вызов метода клиента SignalR при запуске
Ответы (1)
В вашем классе BlahBlahHub
у вас есть доступ ко всем методам подключения, которые вы делаете на клиенте. Подсказка: посмотрите на базовый класс Hub
.
С учетом сказанного, вот как будет выглядеть код:
Центр
[HubName("messageHub")]
public class MessageHub : Hub
{
public override Task OnConnected()
{
Clients.Caller.alertUser(88);
return base.OnConnected();
}
}
Клиент
var sender = $.connection.messageHub;
$.connection.hub.start().done(function () {
}).fail(function (reason) {
console.log("SignalR connection failed: " + reason);
});
sender.client.alertUser = function (test) {
alert(test);
};
person
Mark C.
schedule
25.07.2016
public override Task OnConnected() будет вызываться только при первоначальном подключении пользователя?
- person Josh B; 25.07.2016
Что вы имеете в виду под «изначально» соединяется? А код пробовали? Подходит ли это для вашего сценария?
- person Mark C.; 25.07.2016
Итак, есть два способа интерпретировать ваш запрос. Когда пользователь устанавливает подключение к концентратору SignalR или только когда к концентратору подключаются новые пользователи (то есть пользователи, которые никогда раньше не подключались к концентратору). В этом случае вам, вероятно, понадобится способ интеграции с Redis/Service Bus/SQL Server для идентификации пользовательских подключений.
- person Mark C.; 25.07.2016
Я имел в виду, что когда пользователь устанавливает соединение с концентратором SignalR, я разобрался, спасибо всем.
- person Josh B; 26.07.2016