private void WriteHeader(PacketStream2 stream, EPacketProtoID protoID, byte protoParams) { byte protoIDOffset = (byte)((int)protoID << 4); stream.ResetByteIndex(); stream.WriteBytes(protoIDOffset | protoParams); }
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); }