我正在评估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