protected async virtual Task ProcessPacket(IWebSocketClient client, string header, string content) { _logger.Write(LogType.Normal, "Pack(" + header + "): " + content + "\r\n"); try { // implement json parse error exception so that we dont crash the entire app but only disconnect this client var data = JsonParser.Parse <JsonObject>(content); if (header == "new") { var packageName = data.GetMember <JsonString>("packageName").Value; var instanceConfiguration = InstanceConfiguration.CreateDefault(_settings); var instanceId = _hostClient.CreateInstance( packageName, instanceConfiguration); await Broadcast("new", new { instanceId = instanceId, packageName = packageName }); } } catch (Framework.Json.JsonException ex) { _logger.Write( LogType.Error, $"[{header}] Json protocol error: ({ex.GetType().Name}) '{ex.Message}' in packet: {content}"); } }
public Instance(InstanceManager instanceManager, string id, Package package, ILogger logger, IBindingInterface bindingInterface, ISettings settings) { _instanceManager = instanceManager; _id = id; _package = package; _logger = logger; _bindingInterface = bindingInterface; _status = InstanceStatus.Idle; Configuration = InstanceConfiguration.CreateDefault(settings); }