Я работаю с разделом кода, в котором я буду показывать всплывающее окно (html) в моем приложении для зарегистрированного пользователя всякий раз, когда в его или ее учетной записи WhatsApp получено сообщение, связанное с моим приложением. Бэкэнд-часть выполняется с помощью официального WhatsApp API и sql зависимости. Поэтому всякий раз, когда запускается функция onChange sql метода с внедрением зависимостей, я хочу показать всплывающее окно на стороне клиента.
Я использую SignalR для этого следующим образом.
Hub :
public class WhatsappRcvdMessageHub : Hub
{
#region Variables
public static Dictionary<string, bool> dicConeectionId = new Dictionary<string, bool>();
#endregion
public override Task OnConnected()
{
dicConeectionId.Add(Context.ConnectionId, true);
return base.OnConnected();
}
public override Task OnDisconnected(bool stopCalled)
{
if (dicConeectionId.ContainsKey(Context.ConnectionId))
dicConeectionId.Remove(Context.ConnectionId);
return base.OnDisconnected(stopCalled);
}
public override Task OnReconnected()
{
if (!dicConeectionId.ContainsKey(Context.ConnectionId))
dicConeectionId.Add(Context.ConnectionId, true);
return base.OnReconnected();
}
public void ShowPopupForRcvdMessages()
{
}
}
Вот как я упоминал подключение к концентратору в JS
var whatsappConnection = $.connection.whatsappRcvdMessageHub;
whatsappConnection.client.ShowPopupWithCandidate = function ()
{
// Code to display the pop up
}
Я вызвал функцию JS в классе на стороне сервера, как показано ниже.
var context = GlobalHost.ConnectionManager.GetHubContext<WhatsappRcvdMessageHub>();
context.Clients.All.ShowPopupWithCandidate();
Здесь я использовал clients.all, но я хочу, чтобы он был уведомлен только вошедшему в систему пользователю (скажем, CurrentUser). Я попытался использовать client.user (CurrentUser), но тогда функция JS не сработает.
Может кто-нибудь сказать мне, как изменить сторону клиента, чтобы выполнение работало правильно