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); }
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); }
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); }
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); }
/// <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()); }); }
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()); }
/// <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()); } }