private static async Task StartHostAsync( ChromeMessageAction onMessage, ChromeErrorAction onError) { RegisterHost(); // read initial message var args = Environment.GetCommandLineArgs(); if (args.Length > 1 && args[1].StartsWith("chrome-extension://")) { try { var msg = await ReadChromeMessageAsync(Console.OpenStandardInput()); await SendResponseAsync(true); onMessage?.Invoke(msg); } catch (Exception ex) { await SendResponseAsync(false); onError?.Invoke(ex); } } // wait for additional messages sent from new App instances server = new NamedPipeServerStream(App.DomainName, PipeDirection.InOut); while (true) { await server.WaitForConnectionAsync(); if (server == null) { break; } if (server.IsConnected) { try { var msg = await ReadChromeMessageAsync(server); onMessage?.Invoke(msg); } catch (Exception ex) { onError?.Invoke(ex); } server.Disconnect(); } } }
public static void StartHost(ChromeMessageAction onMessage, ChromeErrorAction onError) { StartHostAsync(onMessage, onError); }