我正在評估SignalR(恰好與Knockoutjs一起使用)以查看我們是否可以使用它來通知客戶端併發性問題。基本上用戶「a」保存一條記錄並通知用戶「b,c,d,e,f,g」。我基本上有一個通知所有客戶的例子。所以我覺得我快到了。有沒有一種方法可以從SignalR中的Clients.method調用中排除客戶端?
我遇到了這個link,它引導我走在當前的道路上。我也一直在查看有關Github的文檔。
基本上我想從Clients.method()
呼叫中排除單個客戶端。我沒有看到通過客戶端循環的方式並檢查ClientId。我能看到的唯一能做到的就是或許看看使用這些小組來跟蹤它,但這看起來有點麻煩,但我也遇到了問題。
public class TicketHub : Hub
{
static int TotalTickets = 10;
public void GetTicketCount()
{
AddToGroup("ticketClients");
Clients.setTicketCount(TotalTickets);
}
public void BuyTicket()
{
if (TotalTickets > 0)
TotalTickets -= 1;
RemoveFromGroup("ticketClients");
// This will call the method ONLY on the calling client
// Caller.updateTicketCountWithNotification(TotalTickets);
// This will call the method on ALL clients in the group
Clients["ticketClients"].updateTicketCountNotify(TotalTickets);
AddToGroup("ticketClients");
Caller.updateTicketCountDontNotify(TotalTickets);
}
}
你能說清楚你想幹什麼嗎?你想顯示用戶對特定用戶所做的更改嗎? – sinanakyazici 2012-01-11 09:27:33
@sinanakyazici重申,我需要通知所有客戶,除了呼叫者。似乎沒有辦法通過客戶端循環來排除特定的客戶端。您可以調用特定的一個或全部。 – Etch 2012-01-11 14:15:07