/// <summary> /// Raises when a client received a completed <see cref="Package"/>. /// Not calling the base implementation of this methods will cause the client /// to malfunction. /// </summary> /// <param name="package">The package that has been received.</param> protected virtual void OnPackageReceived(Package package) { switch ((BaseCommand)package.Command) { case BaseCommand.Logout: var content = LogoutContent.Deserialize(package.Content); OnLoggedOut(content); break; case BaseCommand.ClientNames: var c = ClientNamesContent.Deserialize(package.Content); OnNamesReceived(c); break; case BaseCommand.Login: var loginContent = LoginContent.Deserialize(package.Content); OnLoggedIn(loginContent); break; } }
private void OnPackageReceivedCore(ServerSideClient client, Package e) { switch ((BaseCommand)e.Command) { case BaseCommand.ClientNames: SendClientNames(client); break; case BaseCommand.Logout: clients.Remove(client); BroadcastPackageAsync(e, client); clientNames.Remove(client.Name); client.Dispose(); OnClientLoggedOut(LogoutContent.Deserialize(e.Content)); break; case BaseCommand.Login: ProcessLoginPackage(client, e); break; case BaseCommand.Sync: Synchronize(client); break; } OnPackageReceived(client, e); }