/// <summary>
 /// On Execute event
 /// </summary>
 public override void Execute()
 {
     // Regiter basic networck events
     NetworkServer.RegisterHandler(MsgType.Connect, msg => { ServerConnectedSignal.Dispatch(true); });
     NetworkServer.RegisterHandler(MsgType.Disconnect, msg => { DisconnectSignal.Dispatch(true); });
     NetworkServer.RegisterHandler(MsgType.Error, msg =>
     {
         var error = msg.ReadMessage <ErrorMessage>();
         ServerErrorSignal.Dispatch(error.ToString());
     });
 }
Пример #2
0
 /// <summary>
 /// On register
 /// </summary>
 public override void OnRegister()
 {
     ServerConnectedSignal.AddListener(success =>
     {
         View.ChangeStatus(success ? "Connected" : "Connected Error!");
     });
     DisconnectSignal.AddListener(success =>
     {
         View.ChangeStatus(success ? "Disconnected" : "Disconnected Error!");
     });
     ServerErrorSignal.AddListener(View.OnGameServerError);
 }
Пример #3
0
        private void listen()
        {
            var buffer = new byte[2048];

            while (NetworkStream != null)
            {
                int bylesLength = 0;
                try
                {
                    bylesLength = NetworkStream.Read(buffer, 0, 4);
                }
                catch (IOException)
                {
                    continue;
                }
                catch (ObjectDisposedException)
                {
                    continue;
                }

                if (bylesLength == 0)
                {
                    DisconnectSignal.Invoke(this);
                    break;
                }

                var length = BitConverter.ToInt32(buffer, 0);

                NetworkStream.Read(buffer, 0, length);

                using (var memStream = new MemoryStream(buffer))
                    using (var binaryStream = new BinaryReader(memStream))
                    {
                        var name = Encoding.ASCII.GetString(binaryStream.ReadBytes(binaryStream.ReadInt32()));
                        var data = binaryStream.ReadBytes(binaryStream.ReadInt32());

                        Receiver.Receive(name, data, CustomData);
                    }
            }
        }
Пример #4
0
        private void ProcessInput(InputType type)
        {
            switch (type)
            {
            case InputType.Connect:
                LogMessage("Trying to connect...");
                ConnectSignal.Dispatch();
                break;

            case InputType.Disconnect:
                LogMessage("Trying to disconnect...");
                DisconnectSignal.Dispatch();
                break;

            case InputType.SendMessage:
                TrySendMessage();
                break;

            case InputType.ClearLog:
                ClearLog();
                break;
            }
        }