Пример #1
0
        public void SaveContacts(long oUserId, long cUserId, string customName)
        {
            var json = new JsonDict();

            json.AddLong("OUserId", oUserId);
            json.AddLong("CUserId", cUserId);
            json.Add("CustomName", customName);

            ArraySegmentWrapper segmentWrapper = new ArraySegmentWrapper(Constants.SAVE_CONTACTS_REQUEST_KEY, json.ToBytes());

            this.Send(segmentWrapper);
        }
Пример #2
0
        public void GetContacts(long oUserId, string keyword, int pageNum, int pageSize)
        {
            var json = new JsonDict();

            json.AddLong("OUserId", oUserId);
            json.Add("Keyword", keyword);
            json.AddInt("PageNum", pageNum);
            json.AddInt("PageSize", pageSize);

            ArraySegmentWrapper segmentWrapper = new ArraySegmentWrapper(Constants.GET_CONTACTS_REQUEST_KEY, json.ToBytes());

            this.Send(segmentWrapper);
        }
Пример #3
0
        public void SearchUser(string account)
        {
            var json = new JsonDict();

            json.Add("Account", account);

            ArraySegmentWrapper segmentWrapper = new ArraySegmentWrapper(Constants.SEARCH_USER_REQUEST_KEY, json.ToBytes());

            this.Send(segmentWrapper);
        }
Пример #4
0
        public void Talk(TalkReq req)
        {
            var json = new JsonDict();

            json.Add("FromUId", req.FromUId);
            json.Add("ToUId", req.ToUId);
            json.Add("Content", req.Content);

            ArraySegmentWrapper segmentWrapper = new ArraySegmentWrapper(Constants.TALK_REQUEST_KEY, json.ToBytes());

            this.Send(segmentWrapper);
        }
Пример #5
0
        /// <summary>
        /// 提醒上线
        /// </summary>
        /// <param name="sessionId"></param>
        /// <param name="userName"></param>
        internal void NotifyOnline(string sessionId, string userName)
        {
            var ss = AppServer.GetSessions(o => !o.SessionID.Equals(sessionId));

            ss.AsParallel().ForAll(s =>
            {
                var json = new JsonDict();
                json.Add("SessionID", sessionId);
                json.Add("UserName", userName);
                json.Add("Msg", string.Format("{0} 客户端上线", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")));
                ArraySegmentWrapper segmentWrapper = new ArraySegmentWrapper(Constants.NOTIFY_ONLINE_RESPONSE_KEY, json.ToBytes());

                this.SendData(s, segmentWrapper.Wrapper());
            });
        }
Пример #6
0
        protected override void HandleException(Exception ex)
        {
            this.Logger.ErrorFormat("应用程序异常: {0}", ex.Message);

            var json = new JsonDict();

            json.Add("SessionID", this.SessionID);
            json.Add("Msg", string.Format("{0} 应用程序异常,异常信息:{1}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), ex.Message));
            ArraySegmentWrapper segmentWrapper = new ArraySegmentWrapper(Constants.ERROR_RESPONSE_KEY, json.ToBytes());

            this.SendData(this, segmentWrapper.Wrapper());
        }
Пример #7
0
        /// <summary>
        /// 发送数据
        /// </summary>
        /// <param name="session"></param>
        /// <param name="segment"></param>
        internal void SendData(ChatSession session, ArraySegment <byte> segment)
        {
            try
            {
                int count            = segment.Count;
                int maxRequestLength = AppConfiger.AppCfg.CurrCC_Cfg.MaxRequestLength;
                if (count > maxRequestLength)
                {
                    int offset = 0;
                    while (offset < count)
                    {
                        session.Send(segment.Array, offset, Math.Min(maxRequestLength, count - offset));

                        offset += maxRequestLength;
                    }
                }
                else
                {
                    session.Send(segment);
                }
            }
            catch (Exception ex)
            {
                var json = new JsonDict();
                json.Add("SessionID", session.SessionID);
                json.Add("Msg", string.Format("{0} 发送数据异常,异常信息:{1}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), ex.Message));
                ArraySegmentWrapper segmentWrapper = new ArraySegmentWrapper(Constants.ERROR_RESPONSE_KEY, json.ToBytes());
                session.Send(segmentWrapper.Wrapper());
            }
        }