void server_OnMsgReceived(string uid, SocketMsgData.SocketMsgBase e)
        {
            try
            {
                SocketMsgData.SocketMsgBase msg = e;
                if (msg.SubSystem == SocketMsgData.TcpSeatManageSubSystem.SocketClient && msg.MsgType == SocketMsgData.TcpMsgDataType.ClientToken)
                {
                    if (schoolNums.ContainsKey(msg.Sender))
                    {
                        schoolNums[msg.Sender] = uid;
                    }
                    else
                    {
                        schoolNums.Add(msg.Sender, uid);
                    }
                    Console.WriteLine("{0:M} {1:t}:学校{2}已建立连接", DateTime.Now, DateTime.Now, msg.Sender);
                    SeatManage.SeatManageComm.WriteLog.Write(schoolLinkLog, string.Format("学校{0}已连接,Ip地址:{1}", msg.Sender, uid));
                    if (OnSchoolConnectionHandler != null)
                    {
                        OnSchoolConnectionHandler(msg.Sender, uid);
                    }
                }
                else
                {
                    if (OnReceivedMsg != null)
                    {
                        OnReceivedMsg(msg);
                    }
                    switch (msg.MsgType)
                    {
                    case TcpMsgDataType.Relay:
                        RelaySocketMsg(uid, msg);
                        break;

                    case TcpMsgDataType.WeiXinNotice:
                        SocketMsgData.SocketRequest request = msg as SocketMsgData.SocketRequest;
                        weixinNoticeSend(request);
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                SeatManage.SeatManageComm.WriteLog.Write(string.Format("消息处理失败:{0},异常来自:{1}", ex.Message, ex.Source));
            }
        }
 /// <summary>
 /// 转发socket消息,即客户端发来的是请求学校服务器的消息
 /// </summary>
 /// <param name="uid"></param>
 /// <param name="msg"></param>
 private void RelaySocketMsg(string uid, SocketMsgData.SocketMsgBase msg)
 {
     try
     {
         msg.Sender = uid;
         if (schoolNums.ContainsKey(msg.Target))
         {
             server.Send(schoolNums[msg.Target], SeatManage.SeatManageComm.ByteSerializer.ObjectToByte(msg));
             Console.WriteLine("{0:M} {1:t}:转发给目标{2},地址为:{3}", DateTime.Now, DateTime.Now, msg.Target, schoolNums[msg.Target]);
         }
         else
         {
             if (msg is SocketRequest)
             {
                 Console.WriteLine("{0:M} {1:t}:请求的目标{2}不存在", DateTime.Now, DateTime.Now, msg.Target);
                 SocketResponse response = new SocketResponse();
                 response.SubSystem  = msg.SubSystem;
                 response.MethodName = msg.MethodName;
                 response.Sender     = response.Target;
                 response.Target     = response.Sender;
                 response.ErrorMsg   = "学校没有连接";
                 server.Send(uid, SeatManage.SeatManageComm.ByteSerializer.ObjectToByte(response));
             }
             else if (msg is SocketResponse)
             {
                 Console.WriteLine("消息回复给{0}", msg.Target);
                 Console.WriteLine("{0:M} {1:t}:消息回复给{2}", DateTime.Now, DateTime.Now, msg.Target);
                 server.Send(msg.Target, SeatManage.SeatManageComm.ByteSerializer.ObjectToByte(msg));
             }
         }
     }
     catch (Exception ex)
     {
         SeatManage.SeatManageComm.WriteLog.Write(string.Format("RelaySocketMsg执行遇到异常:{0},异常来自:{1}", ex.Message, ex.Source));
     }
 }