我试图创建一个使用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