Signalr отправляет сообщение клиенту на нескольких вкладках
Я пытаюсь выяснить, как отправить сообщение одному клиенту, подключенному к нескольким вкладкам с помощью SignalR. Проблема в том, что когда я отправляю сообщение конкретному клиенту, оно попадает только на первую вкладку вместо текущей вкладки браузера клиента.
Вот часть моего кода:
Класс ChatHub:
public void SendToSpecific(string name, string message, string to, string chatlog, string chatlogTo, string mType)
{
Clients.Caller.broadcastMessage(name, message, chatlogTo, mType);
Clients.Client(dic[to]).broadcastMessage(name, message, chatlog, mType);
}
Jquery:
chat = $.connection.chatHub;
Startup.cs:
using Owin;
using Microsoft.Owin;
[assembly: OwinStartup(typeof(testFoundation.Startup))]
namespace testFoundation
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
// Any connection or hub wire up and configuration should go here
app.MapSignalR();
}
}
}
Вопрос в том, как отправить сообщение на активную вкладку браузера клиента, если он подключен в нескольких вкладках?
Благодарю.
1 ответ
Решение
Клиенты. Клиент отправит на одно соединение, каждая вкладка имеет свое собственное соединение. Если вы хотите отправить конкретному пользователю, используйте
Clients.User
Отправка на активные вкладки покажется странной? Если он переключит вкладку, остальные не будут в курсе?