使用SignalR集線器客戶端可以從組中添加或刪除。一個客戶可以屬於多個組。是否有可能從當前所屬的每個組中刪除客戶端?我想我正在尋找的是類似於Clients[*allgroups*].leave(Context.ConnectionId)
SignalR - 離開所有組
3
A
回答
1
看起來他們還沒有實現這一點,但它被認爲是V3的候選人。用下面的代碼的特性請求存在於https://github.com/SignalR/SignalR/issues/66
public static class SignalRConnectionToGroupsMap
{
private static readonly ConcurrentDictionary<string, List<string>> Map = new ConcurrentDictionary<string, List<string>>();
public static bool TryAddGroup(string connectionId, string groupName)
{
List<string> groups;
if (!Map.TryGetValue(connectionId, out groups))
{
return Map.TryAdd(connectionId, new List<string>() {groupName});
}
if (!groups.Contains(groupName))
{
groups.Add(groupName);
}
return true;
}
// since for this use case we will only want to get the List of group names
// when we're removing the mapping - we might as well remove the mapping while
// we're grabbing the List
public static bool TryRemoveConnection(string connectionId, out List<string> result)
{
return Map.TryRemove(connectionId, out result);
}
}
4
從v0.5.2開始,無法離開所有組,因爲服務器不跟蹤客戶端所屬的組。您需要自己完成此操作,並逐個從每個組中刪除客戶端。
有在但積壓類似的請求,那麼也許這將在未來的版本中實現:https://github.com/SignalR/SignalR/issues/66
相關問題
- 1. 清除所有評論,但離開PHPDoc
- 2. 移多維數組離開
- 3. 如何確定每個組中所有加入/離開記錄的淨效應?
- 4. 使用libpcap加入/離開組播組
- 5. SignalR沒有OWIN
- 6. SignalR:客戶端斷開
- 7. TinyMCE剝離所有標記
- 8. ICorProfilerCallback2:CLR分析器不會記錄所有離開調用
- 9. 如何選擇所有元素離開第一個元素?
- 10. Android - 離開活動時停止所有線程
- 11. SignalR Disconections
- 12. SignalR:組廣播不工作
- 13. SignalR - 連接/用戶小組
- 14. 在SignalR中加入組
- 15. SignalR:同步羣組加入
- 16. SignalR羣組未被調用
- 17. Signalr沒有連接
- 18. 如何使用AngularJs和所有組件(離子)更新屏幕?
- 19. 計算Java中Arraylist中所有數組之間的距離
- 20. 得到所有字符串分離組合
- 21. 離開
- 22. 離開進程組中終止函數
- 23. 多播組Linux - 加入和離開
- 24. 離開後.get數組丟失數據
- 25. d3強制有向圖在svg上離開,分成節點組
- 26. 它離開最後''有多重要';'在一組CSS規則中
- 27. 分離數組有效
- 28. Angular2,包含組件模塊而不是所有組件分開
- 29. Android離開doInBackgroundThread而不離開活動?
- 30. 所有組
那麼如何'客戶端[「組名」]。WhateverMethod()'知道只有將消息發送到在「組名」客戶端? – EkoostikMartin 2012-08-28 22:06:20
SignalR連接(從服務器到客戶端的通道)正在偵聽特定消息或「信號」,例如連接ID或組名,它們通過查詢字符串進行循環。用作背板的消息總線(以簡化形式)僅僅是一個使用此信息作爲密鑰的字典,當您調用客戶端方法時,它只是將「WhateverMethod」作爲值放入字典中。然後,所有監聽該密鑰的連接都將被異步地提供給數據。離開所有的團體需要一個特殊的命令,告訴客戶停止聆聽,而這還不是。 – 2012-08-29 17:09:49
我明白了,謝謝你的解釋! – EkoostikMartin 2012-08-29 17:56:22