public static System_HeartbeatProto GetProto(byte[] buffer, bool isChild = false)
    {
        System_HeartbeatProto proto = new System_HeartbeatProto();

        MMO_MemoryStream ms = null;

        if (!isChild)
        {
            ms = GameEntry.Socket.SocketSendMS;
        }
        else
        {
            ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>();
        }
        ms.SetLength(0);
        ms.Write(buffer, 0, buffer.Length);
        ms.Position = 0;

        proto.LocalTime = ms.ReadFloat();

        if (isChild)
        {
            GameEntry.Pool.EnqueueClassObject(ms);
        }
        return(proto);
    }
示例#2
0
    public static System_HeartbeatProto GetProto(MMO_MemoryStream ms, byte[] buffer)
    {
        System_HeartbeatProto proto = new System_HeartbeatProto();

        ms.SetLength(0);
        ms.Write(buffer, 0, buffer.Length);
        ms.Position = 0;

        proto.LocalTime = ms.ReadFloat();

        return(proto);
    }
示例#3
0
 public void OnUpdate()
 {
     m_SocketManager.OnUpdate();
     if (m_IsConnectToMainSocket)
     {
         if (Time.realtimeSinceStartup>m_PrevHearbeatTime+HearbeatInterval)
         {
             //发送心跳
             m_PrevHearbeatTime = Time.realtimeSinceStartup;
             System_HeartbeatProto proto = new System_HeartbeatProto();
             proto.LocalTime = Time.realtimeSinceStartup * 1000;
             CheckServerTime = Time.realtimeSinceStartup;//和服务器对表时刻
             SendMainMsg(proto);
         }
     }
 }
示例#4
0
    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyUp(KeyCode.A))
        {
            GameEntry.Socket.ConnectToMainSocket("192.168.1.108", 1038);
        }
        if (Input.GetKeyUp(KeyCode.B))
        {
            for (int i = 0; i < 100; i++)
            {
                System_HeartbeatProto proto = new System_HeartbeatProto();
                proto.LocalTime = Time.realtimeSinceStartup * 1000;
                GameEntry.Socket.SendProtoMessage(proto);
            }

            //GameEntry.Socket.CloseMainSocket();
        }
    }
示例#5
0
        public override void OnUpdate(float deltaTime, float unscaledDeltaTime)
        {
            base.OnUpdate(deltaTime, unscaledDeltaTime);
            m_SocketManager.OnUpdate(deltaTime, unscaledDeltaTime);

            if (m_IsConnectToMainSocket)
            {
                if (Time.realtimeSinceStartup > m_PreHeartbeatTime + m_HeartbeatInterval)
                {
                    m_PreHeartbeatTime = Time.realtimeSinceStartup;

                    //发送心跳包
                    System_HeartbeatProto proto = new System_HeartbeatProto();
                    proto.LocalTime   = Time.realtimeSinceStartup * 1000;
                    m_CheckServerTime = Time.realtimeSinceStartup;
                    SendProtoMessage(proto);
                }
            }
        }