protected virtual void OnJoinTableRequest(ServerEnvelopeObject envelope)
        {
            JoinTableRequest jtres = Manager.Serializer.GetObject<JoinTableRequest>(envelope.InnerData);

            IncomingGameMessageQueueItem joinTableItem = new IncomingGameMessageQueueItem();
            joinTableItem.OperationCode = (GameMessageType)envelope.InnerOperationCode;
            joinTableItem.Data = envelope.InnerData;
            joinTableItem.RouteInfo = envelope.RouteInfo;

            Manager.Tables[jtres.TableToJoin].PlayerPortal.IncomingQueue.Add(joinTableItem);
        }
        public virtual void SendEnvelopeObjectToServer(GameMessageType messageType, byte[] innerData, List<IPEndPoint> receivers, RouteInfo routeInfo)
        {
            ServerEnvelopeObject envelope = new ServerEnvelopeObject();
            envelope.InnerOperationCode = (int)messageType;
            envelope.InnerData = innerData;
            envelope.SenderServerId = ServerId;
            envelope.RouteInfo = routeInfo;

            OutgoingMessage com = ServerMessageFormatter.CreateOutgoingMessage(
                (int)ServerMessageType.ReceiveForwardedMessageFromClient,
                Serializer.GetBytes(envelope),
                receivers);

            InternalOutgoingMessageQueue.Add(com);
        }