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) { } }
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) { }