Разработка веб-приложений Форумы HOWTO Верстка, HTML, JS, CSS, BS4 Обработка входящих вызовов SignalR

В этой теме 0 ответов, 1 участник, последнее обновление  Руслан Раянов 8 мес., 2 нед. назад.

  • Автор
    Сообщения
  • #10084

    Руслан Раянов
    Хранитель

    Если необходимо сделать свои обработчики для SignalR запросов, то реализуйте подобные функции, определив их в следующей глобальной функции window.asSignalRCallback(proxy)

    Вид этих функций будет примерно таким ( https://pastebin.com/yMi9Y6RG): 

    1. proxy.messageReceived = function (data) {
    2.             if (typeof (data)! == "object") data = eval ('(' + data + ')');
    3.             console.log («messageReceived!», data);
    4.             if (data.result) {
    5.                 as.messages.showUnreadState ();
    6.                 var roomCont = $ ('. as-msg-room [data-itemID =' + data.roomID + ']');
    7.                 if (roomCont.length) {
    8.                     if (as.messages) {
    9.                         data.item.isMyMessage = false;
    10.                         as.messages._addMessage (roomCont, data.item, data.user);
    11.                     }
    12.                 }
    13.             }
    14.         };

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

    Как выглядит серверный код ( https://pastebin.com/R3rUrCJE):

    1. // вытаскиваем всех юзеров, которые могут получить из соединений
    2.             var s = новый SignalRHub ();
    3.             var allConnections = s.GetConnectionsInfo ();
    4.             var connectionIDs = new List <string> ();
    5.             var context = GlobalHost.ConnectionManager.GetHubContext <SignalRHub> ();
    6.             var usernames = users.Select (x => x.Username) .ToList ();
    7.             var selConnections = allConnections.Where (x => usernames.Contains (x.data.username)). ToList ();
    8.            
    9.             if (selConnections.Count> 0)
    10.             {
    11.                 var ids = selConnections.Select (x => x.id) .ToList ();
    12.                 context.Clients.Clients (идентификаторы) .messageReceived (JSON);
    13.             }

Для ответа в этой теме необходимо авторизоваться.