/// <summary> /// 消息推送 /// </summary> /// <param name="socketDataModel"></param> /// <param name="SessionPool"></param> /// <param name="IP"></param> public static void Push(Socket sockeClient, string msg, Dictionary <string, Session> sessionPool, string sendIP) { string receiveIP = string.Empty; string sendMobile = string.Empty; string receiveMobile = string.Empty; string errMsg = string.Empty; //解析消息对象 SocketDataModel <MemberSendObject, MemberReceiveObject> socketDataModel = Utils.DataContractJsonDeserializer <SocketDataModel <MemberSendObject, MemberReceiveObject> >(msg); MemberSendObject sendObj = socketDataModel.SendObject; MemberReceiveObject receiveObj = socketDataModel.ReceiveObject; if (!MobileTokenBusiness.ExistToken(sendObj.Token, out sendMobile)) { //如果发送方token不正确 var msgObj = new { result_code = 0, errMsg = "手机token无效" }; //TcpHelper.SaveDBLog(socketDataModel.MessageType, "", sendObj.Token, receiveObj.StoreId, receiveObj.Mobile, socketDataModel.Data.ToString(), "0"); SendData(msgObj, sessionPool, sendIP); } //接受信息方是否存在 if (!GetIP(sessionPool, receiveObj.Mobile, out receiveIP)) { //如果发送方token不正确 var msgObj = new { result_code = 0, errMsg = "对方不在线" }; //tb.show(socketDataModel.MessageType, sendObj.StoreId, sendObj.Token, receiveObj.StoreId, receiveObj.Mobile, socketDataModel.Data.ToString(), "0"); SendData(msgObj, sessionPool, sendIP); } else { TcpHelper tb = new TcpHelper(); //发送消息给接受方 var msgObj1 = new { result_code = 1, content = socketDataModel.Data }; SendData(msgObj1, sessionPool, receiveIP); //提示发送方消息发送成功 var msgObj2 = new { result_code = 1 }; SendData(msgObj2, sessionPool, sendIP); //记录TCP日志 //DataMessageModel logModel = new DataMessageModel(); //logModel.ManageType = socketDataModel.MessageType; //TcpHelper.SaveDBLog(socketDataModel.MessageType, "", sendMobile, "", receiveObj.Mobile, socketDataModel.Data.ToString(), "1"); } }
/// <summary> /// 用户注册 /// </summary> /// <param name="commonObject"></param> /// <param name="SessionPool"></param> /// <param name="IP"></param> public static void Register(Socket socketClient, string msg, Dictionary <string, Session> sessionPool, string IP) { string mobile = string.Empty; string errMsg = string.Empty; //解析消息对象 SocketDataModel <MemberSendObject, MemberReceiveObject> socketDataModel = Utils.DataContractJsonDeserializer <SocketDataModel <MemberSendObject, MemberReceiveObject> >(msg); MemberSendObject sendObj = socketDataModel.SendObject; //验证解析token if (MobileTokenBusiness.ExistToken(sendObj.Token, out mobile)) { //设置客户端对象 List <string> repeatIPList = new List <string>(); var pair = sessionPool.Where(p => p.Value.SendClientId.Equals(mobile)); foreach (var p in pair) { if (!p.Value.IP.Equals(IP)) { repeatIPList.Add(p.Value.IP); } } foreach (var v in repeatIPList) { sessionPool.Remove(v); } sessionPool[IP].SendClientId = mobile; sessionPool[IP].SockeClient = socketClient; //应答数据 var msgObj = new { result_code = 1, answerMsgType = "0", answerMsg = "注册成功" }; SendData(msgObj, sessionPool, IP); } else { //应答数据 var msgObj = new { result_code = 0, result_msg = "手机token无效" }; SendData(msgObj, sessionPool, IP); } }