我做我的第一个测试与SignalR。 我与聊天消息玩弄,但是这仅仅是第一步,以取代所有从客户端的轮询今天,我有我的网站服务器。
我有很多的,我想无论是他们的登录或通过他们的ID通知某些用户场景。 我们的想法是,我只要他连接增加每个用户两类。 我这样做是OnConnected和事件被调用。
当我发送聊天消息,我有两种模式:公共或个人。 如果是个人的通知发件人和收件人应得到通知。 发送方收到消息,但该组从来不会。 这似乎是不可能发现了一组有多少成员。
任何想法是怎么回事错在这里?
public class GlobalHub:Hub
{
private Users user;
private void AuthenticateUser()
{
var ydc = new MyDataContext();
user = ydc.Users.First(u => u.Login == HttpContext.Current.User.Identity.Name);
}
public override Task OnConnected()
{
var ydc = new MyDataContext();
user = ydc.Users.First(u => u.Login == HttpContext.Current.User.Identity.Name);
Groups.Add(Context.ConnectionId, user.Login);
Groups.Add(Context.ConnectionId, user.ID.ToString());
return base.OnConnected();
}
public void SendChatMessage(string message, string recipient)
{
AuthenticateUser();
var cm = ChatController.AddChatMessage(user.Login, user.ID, recipient, tmessage);
if (recipient != "")
{
Clients.Caller.NewMessage(cm);
Clients.Group(recipient).NewMessage(cm);
}
else
{
Clients.All.NewMessage(cm);
}
}
}