// 用户登录、记录、通知所有人 public void Login(string name) { OperationContext context = OperationContext.Current; IChatServerCallback callback = context.GetCallbackChannel <IChatServerCallback>(); ChatUser user = new ChatUser(name, callback); // 不允许用户名重复的登录 if (ChatService.users.ContainsKey(name)) { user.callback.LoginState(false); return; } // 添加进在线列表 ChatService.users.Add(name, user); // 分发广播消息 DeliverSystemMessageToAll(name, "进入聊天室"); // 分发在线用户列表 DeliverUserList(); user.callback.LoginState(true); return; }
public ChatUser(string username, IChatServerCallback callback) { this.username = username; this.callback = callback; }