Beispiel #1
0
        private static void Handshake(NetworkGameClient client)
        {
            GameMessage hello = client.WaitReceive();

            if (hello.ContentType != typeof(HandshakeEvent))
            {
                throw new Exception("client expected handshake");
            }

            HandshakeEvent handshake        = hello.DeserializeContent <HandshakeEvent>();
            string         handshakeMessage = handshake.HandshakeMessage;

            // send it back to server to ack
            client.Send(new GameMessage(new HandshakeEvent(handshakeMessage)));
            Debug.Log("Handshake complete.");
        }
Beispiel #2
0
        public void GameMessageIsSerializable()
        {
            AEvent source = new PlayerDrawCardEvent(Player.Player2);

            GameMessage gameMessage = new GameMessage(source);

            // even though our reference is the abstract type, we should still know the derived
            Assert.Equal(typeof(PlayerDrawCardEvent), gameMessage.ContentType);

            string serializedMessage = Util.Json.Serialize(gameMessage);

            GameMessage deserializedMessage = Util.Json.Deserialize <GameMessage>(serializedMessage);

            // upon deserialization, the content type should still be known
            Assert.Equal(typeof(PlayerDrawCardEvent), deserializedMessage.ContentType);

            PlayerDrawCardEvent sourceCast   = source as PlayerDrawCardEvent;
            PlayerDrawCardEvent deserialized = deserializedMessage.DeserializeContent <PlayerDrawCardEvent>();

            Assert.Equal(sourceCast.Player, deserialized.Player);
        }
Beispiel #3
0
        private static void Handshake(NetworkGameServer server)
        {
            string guid      = Guid.NewGuid().ToString();
            var    handshake = new HandshakeEvent(guid);

            server.Send(new GameMessage(handshake));

            GameMessage received = server.Receive();

            if (received.ContentType != typeof(HandshakeEvent))
            {
                throw new Exception("server expected handshake.");
            }

            HandshakeEvent internalEvent = received.DeserializeContent <HandshakeEvent>();

            if (internalEvent.HandshakeMessage != guid)
            {
                throw new Exception($"The client did not respond with the expected handshake message. Expected: {guid}\nSaw: {internalEvent.HandshakeMessage}");
            }

            Debug.Log("Handshake succeeded.");
        }