Example #1
0
        private static void StartClientSychronous()
        {
            SerializerSingleton.Serializer.AddSerializer <ClientHeartBeatPacket>(new ClientHeartBeatSerializer());
            SerializerSingleton.Serializer.AddSerializer <ClientHandshakePacket>(new ClientHandshakeSerializer());
            SerializerSingleton.Serializer.AddSerializer <ClientInstanceReadyPacket>(new ClientInstanceReadySerializer());
            SerializerSingleton.Serializer.AddSerializer <ServerExitPacket>(new ServerExitSerializer());

            MasterServerAPI.ConnectionEvents evs = new MasterServerAPI.ConnectionEvents
            {
                OnError = (MatchMakingErrorCode e, Exception ex) =>
                {
                    Console.WriteLine("Error Code: " + e);
                    if (ex != null)
                    {
                        throw ex;
                    }
                },
                OnStatusUpdate = Console.WriteLine,
                OnSuccess      = (MasterServerAPI.ServerInstanceResultPacket packet) =>
                {
                    Console.WriteLine("Connection Successful: Error: " + packet.ErrorCode + "  Port:" +
                                      packet.Port);
                }
            };

            MasterServerAPI.Queue(evs, "localhost", 19999, new CancellationToken());

            //Task<MasterServerAPI.ServerInstanceResultPacket> queue =
            //    MasterServerAPI.QueueAsync(evs, "localhost", 19999, new CancellationToken());
            //queue.Start();
            //queue.Wait();
            return;
        }
Example #2
0
    public void FindGame()
    {
        UpdateQueueStatus = true;
        DisplayTimestamp  = true;
        SetText("Connecting to Master Server..");

        MasterServerAPI.ConnectionEvents ev = new MasterServerAPI.ConnectionEvents();
        ev.OnError += (MatchMakingErrorCode e, Exception ex) =>
        {
            DisplayTimestamp  = false;
            UpdateQueueStatus = true;

            errTitle          = "Error Code: " + e;
            errText           = ex == null ? "No Exception Provided." : ex.Message;
            UpdateErrorStatus = true;
        };
        ev.OnStatusUpdate += SetText;
        ev.OnSuccess      += OnMasterServerFoundMatch;

        GameInitializer.Master.ConnectToServer(ev);
    }
Example #3
0
        public void ConnectToServer(MasterServerAPI.ConnectionEvents events)
        {
            if (connecting || running)
            {
                return;
            }
            running                   = true;
            connectionEvents          = events;
            connecting                = true;
            connectionEvents.OnError += (MatchMakingErrorCode e, Exception ex) =>
            {
                connecting = false;

                running = false;
                Debug.Log("Error Code: " + e);
                if (ex != null)
                {
                    Debug.LogWarning("Received Exception: " + ex);
                }
            };
            connectionEvents.OnStatusUpdate += Debug.Log;
            connectionEvents.OnSuccess      += ConnectToGameInstance;
            MasterServerAPI.QueueAsync(connectionEvents, Info.Address.IP, Info.Address.Port, tokenSource.Token).Start();
        }
Example #4
0
        private static void StartClient()
        {
            SerializerSingleton.Serializer.AddSerializer <ClientHeartBeatPacket>(new ClientHeartBeatSerializer());
            SerializerSingleton.Serializer.AddSerializer <ClientHandshakePacket>(new ClientHandshakeSerializer());
            SerializerSingleton.Serializer.AddSerializer <ClientInstanceReadyPacket>(new ClientInstanceReadySerializer());
            SerializerSingleton.Serializer.AddSerializer <ServerExitPacket>(new ServerExitSerializer());

            MasterServerAPI.ConnectionEvents evs = new MasterServerAPI.ConnectionEvents
            {
                OnError = (MatchMakingErrorCode e, Exception ex) =>
                {
                    Console.WriteLine("Error Code: " + e);
                    if (ex != null)
                    {
                        throw ex;
                    }
                },
                OnStatusUpdate = Console.WriteLine,
                OnSuccess      = (MasterServerAPI.ServerInstanceResultPacket packet) =>
                {
                    Console.WriteLine("Connection Successful: Error: " + packet.ErrorCode + "  Port:" +
                                      packet.Port);
                }
            };

            Task <MasterServerAPI.ServerInstanceResultPacket> queue =
                MasterServerAPI.QueueAsync(evs, "localhost", 19999, new CancellationToken());

            queue.Start();
            queue.Wait();
            return;

            //    Task<MasterServerAPI.ServerHandshakePacket> handshakeTask = MasterServerAPI.BeginConnectionAsync("localhost", 19999);
            //    handshakeTask.Start();
            //    Logger.DefaultLogger("Waiting for MatchMakingServer");
            //    while (handshakeTask.Status == TaskStatus.Running)
            //    {
            //    }

            //    if (handshakeTask.IsFaulted)
            //    {
            //        throw (handshakeTask.Exception as AggregateException).InnerExceptions[0];
            //    }

            //    MasterServerAPI.ServerHandshakePacket hpack = handshakeTask.Result;
            //    Logger.DefaultLogger("");

            //    Logger.DefaultLogger("MatchMakingServer Info:");
            //    Logger.DefaultLogger($"\tCurrent Game Instances: {hpack.CurrentInstances}/{hpack.MaxInstances}");
            //    Logger.DefaultLogger($"\tClients in Queue: {hpack.WaitingQueue}");
            //    Logger.DefaultLogger($"\tHeartbeat: {hpack.HeartBeat}");

            //    Task<MasterServerAPI.ServerInstanceResultPacket> queueTask = MasterServerAPI.FindMatchAsync(hpack);
            //    queueTask.Start();

            //    Logger.DefaultLogger("In Queue..");
            //    while (queueTask.Status == TaskStatus.Running)
            //    {
            //        Thread.Sleep(100);
            //    }

            //    if (queueTask.IsFaulted)
            //        throw queueTask.Exception;

            //    Logger.DefaultLogger("Finished Queue.");
            //    Logger.DefaultLogger($"Game MatchMakingServer Instance Port: {queueTask.Result.Port}");
            //    Logger.DefaultLogger("Finished Queue.");
        }