private async Task Listen(Client client)
        {
            try {
                while (client.IsAlive)
                {
                    var package = await client.ReadAsync <Package>();

                    var args = new PackageReceivedEvent {
                        EndpointId = client.Account.Id, Package = package
                    };
                    EventManager.InvokeEvent(EventType.PackageReceived, args, this);

                    if (args.SkipLegacyHandling)
                    {
                        continue;
                    }

                    switch (package.Type)
                    {
                    case PackageType.Debug:
                        Debug.WriteLine("L: " + package.GetContent <string>(0));
                        break;
                    }
                }
            } catch (ClientDisconnectedException ex) { }
        }
Exemple #2
0
        private async Task Listen(Client client)
        {
            try {
                while (client.IsAlive)
                {
                    var package = await client.ReadAsync <Package>();

                    var @event = new PackageReceivedEvent {
                        EndpointId = client.Account.Id, Package = package
                    };
                    await EventService.InvokeEvent(EventType.PackageReceived, @event, this);

                    if (@event.SkipLegacyHandling)
                    {
                        continue;
                    }

                    switch (package.Type)
                    {
                    case PackageType.ExternalEvent:
                        await EventService.InvokeEvent(EventType.External, package.GetContent <ExternalEvent>(0), this);

                        break;
                    }
                }
            } catch {
                MessageBox.Show("Disconnected");
                Server.DisconnectClient(client);
            }
        }
        private async Task Listen()
        {
            try {
                while (Client.IsAlive)
                {
                    var package = await Client.ReadAsync <Package>();

                    var @event = new PackageReceivedEvent {
                        Package = package
                    };

                    await EventService.InvokeEvent(EventType.PackageReceived, @event, this);

                    if (@event.SkipLegacyHandling)
                    {
                        continue;
                    }

                    switch (package.Type)
                    {
                    case PackageType.Assembly:
                        var extPath = Path.Combine(SessionFolderPath, package.GetContent <string>(1));
                        File.WriteAllBytes(extPath, package.GetContent <byte[]>(0));

                        ExtensionManager.InitializeExtension(extPath, false);

                        break;

                    case PackageType.ExternalEvent:
                        await EventService.InvokeEvent(EventType.External, package.GetContent <ExternalEvent>(0), this);

                        break;
                    }
                }
            } catch {
                MessageBox.Show("Disconnected");
            }
        }
 public virtual void OnPackageReceived(IServerWrapper sender, PackageReceivedEvent @event)
 {
 }