/// <summary> 给客户端发送消息(移除自己) </summary> public void ServerSendToClientMsg_Unself(string eventName, string deviceId, params object[] objs) { SessionTcp session = LanTcpManager.Instance.GetStudentSessionByDeviceId(deviceId); GameMsg gameMsg = GetServerGameMsg(LAN_CMD.SCMsg_UnSelf, null, eventName, objs); LanTcpManager.Instance.SendMsgAll(session, gameMsg); }
/// <summary> 客户端转发客户端(1人) </summary> public void CCPushMsg_One(GameMsg gameMsg) { string deviceId = (string)gameMsg.pushMsg.Param; SessionTcp session = LanTcpManager.Instance.GetStudentSessionByDeviceId(deviceId); gameMsg.pushMsg.Param = null; LanTcpManager.Instance.SendMsg(session, gameMsg); }
/// <summary>把消息加入队列</summary> public void AddMsgQueue(SessionTcp session, SocketMsg msg) { if (server != null) { lock (lockNetTcp) { msgPackageQueue.Enqueue(new MsgPackage(session, msg)); } } }
/// <summary>发送消息(所有学生端) sessionTcp:除去某一个学生端</summary> public void SendMsgAll(SessionTcp sessionTcp, string msg) { byte[] bytes = SocketTools.PackageLengthInfo(msg); foreach (SessionTcp session in clientKeyValuePairs.Keys) { if (session != sessionTcp) { session.SendMsg(bytes); } } }
/// <summary>发送消息(所有学生端) sessionTcp:除去某一个学生端</summary> public void SendMsgAll(SessionTcp sessionTcp, SocketMsg gameMsg) { byte[] bytes = SocketTools.PackageNetMsg(gameMsg); foreach (SessionTcp session in clientKeyValuePairs.Keys) { if (session != sessionTcp) { session.SendMsg(bytes); } } }
/// <summary>发送消息</summary> public void SendMsg(SessionTcp session, byte[] bytes) { if (session != null) { try { session.SendMsg(SocketTools.PackageLengthInfo(bytes)); } catch (Exception e) { Debug.LogError(e); } } }
/// <summary> 移除Session 掉线</summary> public void RemoveSession(SessionTcp session) { if (session != null) { if (clientKeyValuePairs.ContainsKey(session)) { clientKeyValuePairs.Remove(session); } } else { Debug.LogError("NetTcpSvc.RemoveSession(SessionTcp session)为空 "); } }
/// <summary>发送消息</summary> public void SendMsg(SessionTcp session, SocketMsg msg) { if (session != null) { try { byte[] bytes = SocketTools.PackageNetMsg(msg); session.SendMsg(bytes); } catch (Exception e) { Debug.LogError(e); } } }
public MsgPackage(SessionTcp session, SocketMsg msg) { this.session = session; this.msg = msg; }
/// <summary> 添加离线 </summary> public void AddOffLine(SessionTcp sessionTcp) { offLineQueue.Enqueue(sessionTcp); }
/// <summary> 给客户端发送消息(移除自己) </summary> public void ServerSendToClientMsg_Unself(string eventName, SessionTcp session, params object[] objs) { GameMsg gameMsg = GetServerGameMsg(LAN_CMD.SCMsg_UnSelf, null, eventName, objs); LanTcpManager.Instance.SendMsgAll(session, gameMsg); }
/// <summary> 客户端转发客户端(移除自己) </summary> public void CCPushMsg_UnSelf(SessionTcp session, GameMsg gameMsg) { LanTcpManager.Instance.SendMsgAll(session, gameMsg); }