2015-12-17 2 views
1

Я пытаюсь использовать signalR в качестве системы обмена сообщениями для обновления индикаторов выполнения и т. Д. На веб-странице - и мне нужно уметь изолировать прогессию (или любое другое сообщение) на определенной странице.Запросы на изоляцию SignalR

IHubContext hubContext = GlobalHost.ConnectionManager.GetHubContext<InventoryHub>(); 

сообщения как >>hubContext.Clients.All.InitialiseProgress(inventoryData.Count());

Очевидно, что проблема заключается в том Clients.All - Я просто не знаю, как я подключить его так, что, когда он посылает обратно от сервера к клиенту - он отправляет только на страницу он был вызван. Я не могу опустить голову вокруг connectionid.

Пожалуйста, помогите :-)

+0

«Я просто не знаю, как я подключить его так что при отправке обратно с сервера на клиент - он отправляет только на страницу, из которой он был вызван »- я предполагаю, что это означает, что вы столкнулись с« Клиентом.Caller », и этого недостаточно для ваших нужд? –

+0

Звучит как правильная вещь - я просто не вижу, как ее реализовать. Например, я использую hubContext.Clients.All.InitialiseProgress (inventoryData.Count()); - но нет Клиентов. Калле ....? –

ответ

0

Вы можете использовать SignalR группы для передачи сообщений о ходе на конкретные страницы.

От Working with Groups in SignalR:

Добавление идентификатор подключения к группе:

public class ContosoChatHub : Hub 
{ 
    public Task JoinRoom(string roomName) 
    { 
     return Groups.Add(Context.ConnectionId, roomName); 
    } 

    public Task LeaveRoom(string roomName) 
    { 
     return Groups.Remove(Context.ConnectionId, roomName); 
    } 
} 

Broadcasting к определенной группе:

Clients.Group(groupName).addChatMessage(name, message); 
+0

Это здорово .. но я бы хотел использовать Clients.Caller - я просто не могу понять, как создать экземпляр хаба таким образом, чтобы я мог его использовать ..? –

+0

Я только что провел некоторое тестирование, и я думаю, что 'Clients.Caller' не доступен вне самого центра, в вашем случае' InventoryHub'. 'Группы' есть, но если вы действительно против использования групп, вам придется придерживаться другого типа поиска идентификаторов страниц для идентификаторов соединений. – Matt

Смежные вопросы