/// <summary> /// Removes registered websocket message listener. /// </summary> /// <param name="msgCase">message type to stop lisitening for</param> /// <param name="listener">listener object</param> public void UnregisterListener(WrapperMessage.MessageOneofCase msgCase, IOnMessageListener listener) { if (listeners.ContainsKey(msgCase)) { listeners[msgCase].Remove(listener); } }
/// <summary> /// Registers new websocket message listener. /// </summary> /// <param name="msgCase">message type for listener to listen to</param> /// <param name="listener">listener object</param> public void RegisterListener(WrapperMessage.MessageOneofCase msgCase, IOnMessageListener listener) { Debug.Assert( msgCase != WrapperMessage.MessageOneofCase.Disconnected, "Disconnect message is handled directly by the connection handler." ); if (!listeners.ContainsKey(msgCase)) { listeners[msgCase] = new List <IOnMessageListener>(); } else if (listeners[msgCase].Contains(listener)) { return; // do not allow to register the same object multiple times for the same message case } listeners[msgCase].Add(listener); }