private void InitializeMessageBus() { _messageBus = new NamedPipeMessageBus(_hostPipeName, _appPipeName); _messageBus.Subscribe((ApplicationActivatedMessage msg) => OnApplicationActivated()); _messageBus.Subscribe((SendDataMessage msg) => SendMessage(msg.ConnectionIdentity, msg.Data)); _messageBus.Subscribe((CloseConnectionMessage msg) => CloseConnection(msg.ConnectionIdentity)); }
public void Start() { _finishedWaitHandle.Reset(); Init(); _messageBus = new NamedPipeMessageBus(_appPipeName, _hostPipeName); _messageBus.Subscribe((ConnectionOpenedMessage msg) => { RegisterConnection(new ProxyWebSocketConnection(msg, this)); }); _messageBus.Subscribe((ConnectionClosedMessage msg) => { UnregisterConnection(msg.ConnectionIdentity); }); _messageBus.Subscribe((DataReceivedMessage msg) => { var c = GetConnection(msg.ConnectionIdentity); if (c == null) { _log.Error("Received message for not existing connection"); return; } OnMessageReceived(new WebSocketMessageEventArgs(c, msg.Data)); }); _messageBus.Subscribe((PingReceivedMessage msg) => { var c = GetConnection(msg.ConnectionIdentity); if (c == null) { _log.Error("Received message for not existing connection"); return; } OnPingReceived(new WebSocketConnectionEventArgs(c)); }); _messageBus.Subscribe((CloseApplicationMessage msg) => { Stop(); }); _messageBus.Notify(new ApplicationActivatedMessage()); }