Example #1
0
        // 用户登录、记录、通知所有人
        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;
        }
Example #2
0
 public ChatUser(string username, IChatServerCallback callback)
 {
     this.username = username;
     this.callback = callback;
 }