2013-04-04 97 views
0

我第一次使用signalr同時向用戶組廣播通信。我有兩個地區 - 美國和加拿大以及多個應用程序的銷售/營銷/等。SignalR - 連接/用戶小組

我希望能夠將郵件發送到:在

  • 所有用戶在特定區域
  • 所有用戶的特定應用程序的不分地域
  • 所有用戶的特定應用程序的特定區域

現在我可以將消息發送到特定的組 - 實質上完成上面的#1和#2。是否可以有子組用戶 - 或者只有當用戶當前分配給兩個組時才發送消息?如果沒有,是否有實現此功能的最佳做法?

感謝 JP

回答

3

不,你不能開箱即用。

然而,您可以嘗試查詢不符合條件的用戶,然後將其包含在您的group.send請求中的「排除連接ID」參數中。

因此,例如,(命令代碼)

var exclusionIds = myusers.Where(u => u.OnApplication("App1")).Where(x => !x.InRegion("xyz")).Select(z => z.ConnectionId).ToArray(); 

Clients.Group("App1", exclusionIds).foo(); 
2

SignalR僅提供幫助您保持簡單的羣體的功能。您必須在代碼中處理您的子組邏輯。您可以爲不同的組創建「集合」,並根據需要將消息發送到這些組/集合的交集。您可以查看SignalR中的聊天示例,瞭解有關如何在應用程序中管理組的更多信息。