Esempio n. 1
0
    public void Parse(Stream source)
    {
        CMsg cmsg       = ProtoBuf.Serializer.Deserialize <CMsg>(source);
        int  cmd        = cmsg.cmd;
        int  dest       = cmsg.dest;
        long serverTime = cmsg.serverTime;

        byte[] body = cmsg.body;

        //消息号保存进队列
        PBNO _pb = new PBNO();

        _pb.msg        = cmsg;
        _pb.pbInstance = null;

        //分发协议去解析
        _pb.pbInstance = pb.ParseData(dest, cmd, body);

        if (IsOftenData(dest, cmd))
        {
            net.PushDataScene(_pb);
        }
        else
        {
            net.PushDataQueue(_pb);
        }

        Debug.Log("收到消息 dest=" + dest + ",cmd=" + cmd);
    }
Esempio n. 2
0
    //解析协议信息
    private void ParseDataByPbManage(Stream source)
    {
        CMsg cmsg       = ProtoBuf.Serializer.Deserialize <CMsg>(source);
        int  cmd        = cmsg.cmd;
        int  dest       = cmsg.dest;
        long serverTime = cmsg.serverTime;

        byte[] body = cmsg.body;
        //消息号保存进队列
        PBNO _pb = new PBNO();

        _pb.msg = cmsg;

        //分发协议去解析
        pbManage.ParseData(dest, cmd, body);

        if (IsOftenData(dest, cmd))
        {
            recDataScene.Enqueue(_pb);
        }
        else
        {
            recDataQueue.Enqueue(_pb);
        }

        Debug.Log("收到消息 dest=" + dest + ",cmd=" + cmd);
    }
Esempio n. 3
0
    public global::ProtoBuf.IExtensible getOftenData(ref int dest, ref int cmd)
    {
        if (recDataScene.Count <= 0)
        {
            return(null);
        }
        PBNO _msg = recDataScene.Dequeue();

        dest = _msg.msg.dest;
        cmd  = _msg.msg.cmd;
        return(_msg.pbInstance);
    }
Esempio n. 4
0
    public PBNO getOftenData(ref int dest, ref int cmd)
    {
        if (recDataScene.Count <= 0)
        {
            return(null);
        }

        PBNO _msg = recDataScene.Dequeue();

        dest = _msg.msg.dest;
        cmd  = _msg.msg.cmd;

        return(_msg);
    }
Esempio n. 5
0
    //获取消息队列第一个数据
    public void getCMsg(ref int dest, ref int cmd)
    {
        //发送消息
        pbnoCurr.setNull();

        //PBNO _msg=new PBNO(); 每一帧都new一个 也许会影响效率
        if (recDataQueue.Count > 0)
        {
            PBNO _msg = recDataQueue.Dequeue();
            dest  = _msg.msg.dest;
            cmd   = _msg.msg.cmd;
            STime = _msg.msg.serverTime;

            pbnoCurr.msg = _msg.msg;

            _msg.setNull();
        }
    }
Esempio n. 6
0
    public object DeserializeData(object source)
    {
        Debug.Log("DeserializeData");

        if (source == null)
        {
            return(null);
        }

        Stream stream = (Stream)source;

        CMsg cmsg       = ProtoBuf.Serializer.Deserialize <CMsg>(stream);
        int  cmd        = cmsg.cmd;
        int  dest       = cmsg.dest;
        long serverTime = cmsg.serverTime;

        byte[] body = cmsg.body;


        //消息号保存进队列
        PBNO _pb = new PBNO();

        _pb.msg = cmsg;

        //分发协议去解析
        PBParseManage.getInstance().ParseData(dest, cmd, body);

        if (NetWorkManage.getInstance().IsOftenData(dest, cmd))
        {
            NetWorkManage.getInstance().PushReceDataScene(_pb);
        }
        else
        {
            NetWorkManage.getInstance().PushReceDataQueue(_pb);
        }

        Debug.Log("收到消息 dest=" + dest + ",cmd=" + cmd);

        return(null);
    }
Esempio n. 7
0
 public void PushReceDataQueue(PBNO _pb)
 {
     recDataQueue.Enqueue(_pb);
 }
Esempio n. 8
0
 public void PushDataScene(PBNO _pb)
 {
     recDataScene.Enqueue(_pb);
 }