示例#1
0
        private void WriteHeader(PacketStream2 stream, EPacketProtoID protoID, byte protoParams)
        {
            byte protoIDOffset = (byte)((int)protoID << 4);

            stream.ResetByteIndex();
            stream.WriteBytes(protoIDOffset | protoParams);
        }
示例#2
0
        private bool ProcessMessage(PacketStream2 stream, Message2 msg, EClientMessageFlow flowType)
        {
            bool canDiscard = true;

            MessageQueue2 outgoing = _messageQueueOut;

            switch (flowType)
            {
            case EClientMessageFlow.INCOMING:
                byte protoHeader = stream.ReadByte();
                byte protoID     = (byte)(protoHeader >> 4);
                byte protoParams = (byte)(protoHeader & 0xf);

                EPacketProtoID PROTO_ID = (EPacketProtoID)protoID;

                switch (PROTO_ID)
                {
                case EPacketProtoID._00_HEART_BEAT:
                    string heartBeatMessage = stream.ReadString();
                    trace("heartBeatMessage: " + heartBeatMessage);

                    //Ouff... I think we need another temporary Stream / Bytes to write the pending outgoing messages!!!
                    //outgoing.AddBytes()
                    break;

                default:
                    trace("Unknown proto-ID: " + PROTO_ID);
                    break;
                }
                break;

            case EClientMessageFlow.OUTGOING:

                break;
            }

            return(canDiscard);
        }