我試圖創建一個使用SignalR的聊天應用程序。爲了使發送私人消息成爲可能,我想將客戶端分配給一個名爲profileID的組。所以我可以簡單地調用組的addMessage函數發送給特定的客戶端。SignalR:任務加入()不叫
當我去這個頁面:https://github.com/SignalR/SignalR/wiki/Hubs
它告訴我添加到集線器的功能稱爲加入()。在這裏,我可以將接收客戶添加到一個組中。所以我創造了這個代碼:
[HubName("Chat")]
public class ChatHub : Hub
{
public Task Join()
{
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
Profiel_DataHelper profiel = new Profiel_DataHelper(HttpContext.Current.User.Identity.Name);
return Groups.Add(Context.ConnectionId, profiel.ProfielID.ToString());
}
else
{
return null;
}
}
.....
當我想打電話給一個特定的客戶端我用這個代碼:
var context = GlobalHost.ConnectionManager.GetHubContext();
context.Clients.Group(profielidNaar).addTyptOnline(profielidVan);
但是當我運行程序的加入()任務根本沒有被調用,因此我對該組的調用也不起作用。
我在做什麼錯?
是的,這個工作,只有在「onconnected」事件添加客戶端將無法正常工作。你必須真正從客戶端調用它。我的代碼的問題是我忘記了。服務器。在對Join方法的調用中。 – ikwillem 2013-04-15 11:46:46
看到你沒有顯示客戶端代碼,我不會知道:) – davidfowl 2013-04-15 13:49:11