Вы можете поместить этих клиентов в одну группу.
Шаг 1: (JavaScript) Когда клиент подключен, подпишите его на группу:
$.connection.hub.start().done(function(){
$.connection.yourHub.subscribeClient();
});
Шаг 2: На стороне сервера, в коде C # вашего HUB, подпишите клиента на группу:
public Task<bool> SubscribeClient(){
Groups.Add(Context.ConnectionId, "your_group_name");
return Task.FromResult(true);
}
Шаг 3: На стороне клиента создайте метод, который будетВызывается сервером:
$.connection.yourHub.client.newMessageFromTheServer = function(msg) {
alert('Message from the server: " + msg);
}
помните, что этот метод необходимо определить перед началом подключения signalr2 к серверу
Шаг4: Вызвать метод с сервера:
public Task<bool> SendMessageToAGroup(string groupName, string msg) {
Clients.Group(groupName).newMessageFromTheServer(msg);
return Task.FromResult(true);
}
Метод из четвертого шага может быть вызван со стороны клиента:
$.connection.yourHub.sendMessageToAGroup('your_group_name', "my message").done(function(response) {
alert('message sent');
});
или вы можете вызвать этот метод изконтроллер:
//get hub first
var myHub = GlobalHost.ConnectionManager.GetHubContext<YourHub>();
//then send a message to all subscribers
myHub.Clients.Group("your_group_name").newMessageFromTheServer("my message");
Надеюсь, это поможет.