private void OnMessage(byte[] msg) { var message = ToString(msg); Debug.Log("WS received message: " + message); _mainThreadQueue.enqueueAction(() => { try { var inputSignal = InputSignal.FromJson(message); _signalBus.Fire(inputSignal); _signalBus.Fire(new GameSignals.PlayerActionTriggered(inputSignal.PlayerId)); } catch (Exception e) { Debug.Log("Failed to process " + message + " " + e.Message); } }); }