Ejemplo n.º 1
0
        /// <summary>
        /// 请求事件入口
        /// </summary>
        /// <param name="session"></param>
        /// <param name="rInfo"></param>
        private void appServer_RequestHandler(ChatsSession session, IBaseRequestInfo baseInfo)
        {
            StringBuilder sb = new StringBuilder();

            switch (baseInfo.MsgType)
            {
            case MsgType.Text:
                Text_RequestHandler(session, baseInfo);
                break;
            }
            UpdateWeicheSession(session);
            UpdateConnection();
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 在listBox_Chats消息记录中追加信息
        /// </summary>
        /// <param name="str">要追加的信息</param>
        private void AddChatsToList(IBaseRequestInfo baseInfo)
        {
            try
            {
                if (rtbMsgList.InvokeRequired)
                {
                    AddItemToListBoxDelegate d = AddChatsToList;
                    rtbMsgList.Invoke(d, baseInfo);
                }
                else
                {
                    switch (baseInfo.MsgType)
                    {
                    case MsgType.Text:
                        TextRequestInfo textInfo = (TextRequestInfo)baseInfo;
                        rtbMsgList.SelectionStart = rtbMsgList.Text.Length;    //设置插入符位置为文本框末
                        if (this.txtUserName.Text != textInfo.FromUserName)
                        {
                            rtbMsgList.SelectionColor = Color.Blue;    //设置文本颜色
                        }
                        else
                        {
                            rtbMsgList.SelectionColor = Color.Green;    //设置文本颜色
                        }
                        rtbMsgList.AppendText(textInfo.FromUserName + "(" + Utils.GetDateTime() + ")\r\n");
                        rtbMsgList.SelectionStart = rtbMsgList.Text.Length; //设置插入符位置为文本框末
                        rtbMsgList.SelectionColor = Color.Black;            //设置文本颜色
                        rtbMsgList.AppendText(textInfo.Content + "\r\n");
                        break;

                    case MsgType.Error:
                        ErrorRequestInfo errorInfo = (ErrorRequestInfo)baseInfo;
                        MessageBox.Show(this, errorInfo.Content);
                        txtUserName.Enabled      = true;
                        this.btnLogin.Enabled    = true;
                        this.buttom_Send.Enabled = false;
                        break;
                    }
                }
            }
            catch { }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 文本消息处理
        /// </summary>
        /// <param name="baseInfo"></param>
        public void Text_RequestHandler(ChatsSession session, IBaseRequestInfo baseInfo)
        {
            TextRequestInfo info = (TextRequestInfo)baseInfo;

            session.UserName = info.FromUserName;
            #region 显示请求信息
            StringBuilder sb = new StringBuilder();
            sb.Append(string.Format("-------------start({0})-----------------\r\n", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")));
            sb.Append(string.Format("发送人:{0}\r\n时间:{1}\r\n消息内容:{2}",
                                    info.FromUserName, info.CreateTime, info.Content));
            sb.Append("\r\n-------------end-----------------\r\n");
            ShowMsg(sb.ToString());

            foreach (ChatsSession s in GetAllChatsSession())
            {
                if (s.UserName != info.FromUserName)
                {
                    SessionHelper.SendMessage(s, JsonConvert.SerializeObject(info));
                }
            }

            #endregion
        }