public static void subscribeClient(KSPEvents ev, String client, String subEventID) { if (!subscribedSubEvents.ContainsKey(ev)) { subscribedSubEvents.Add(ev, new Dictionary<String, List<String>>()); } if (!subscribedSubEvents[ev].ContainsKey(client)) { subscribedSubEvents[ev].Add(client, new List<String>()); } subscribedSubEvents[ev][client].Add(subEventID); subscribeClient(ev, client); }
public static void unsubscribeClient(KSPEvents ev, String wsClient, String subEventID) { if (subscribedSubEvents.ContainsKey(ev)) { if (subscribedSubEvents[ev].ContainsKey(wsClient)) { if (subscribedSubEvents[ev][wsClient].Contains(subEventID)) { subscribedSubEvents[ev][wsClient].Remove(subEventID); } if (subscribedSubEvents[ev][wsClient].Count == 0) { unsubscribeClient(ev, wsClient); } } } }
public static void dispatchEvent(WebSocketHandler ws, KSPEvents ev, String eventData, String subEventID) { if (!_cachedEvents.ContainsKey(ev)) _cachedEvents.Add(ev, new Dictionary<String, String>()); if (!_cachedEvents[ev].ContainsKey(subEventID)) _cachedEvents[ev].Add(subEventID, eventData); else _cachedEvents[ev][subEventID] = eventData; getSubscribers(ev).ForEach((WSClient client) => { if (subscribedSubEvents[ev].ContainsKey(client.ID)) { if (subscribedSubEvents[ev][client.ID].Contains(subEventID)) { ws.SendTo(client.ID, eventData); } } }); }
public static String getLastEvent(KSPEvents ev, String subID) { KSPAlternateController.print("Test2"); if (_cachedEvents.ContainsKey(ev)) { if (_cachedEvents[ev].ContainsKey(subID)) { KSPAlternateController.print("Test"); return _cachedEvents[ev][subID]; } } return ""; }
public static void unsubscribeClient(KSPEvents ev, String wsClient) { if (subscribedEvents.ContainsKey(ev)) { subscribedEvents[ev].Remove(wsClient); } }
public static void subscribeClient(KSPEvents ev, String wsClient) { if (!subscribedEvents.ContainsKey(ev)) { subscribedEvents[ev] = new List<String>(); } subscribedEvents[ev].Add(wsClient); }
public static List<WSClient> getSubscribers(KSPEvents ev) { List<WSClient> clients = new List<WSClient>(); if (subscribedEvents.ContainsKey(ev)) { List<String> subscribers = subscribedEvents[ev]; for (int i = 0; i < subscribers.Count; i++) { WSClient client = WSClient.getClient(subscribers[i]); if (client != null) { clients.Add(client); } else { subscribedEvents[ev].Remove(subscribers[i]); } } } return clients; }
public static String getLastEvent(KSPEvents ev) { KSPAlternateController.print("Test3"); if (_cachedEvents.ContainsKey(ev)) { KSPAlternateController.print("Test4"); return _cachedEvents[ev]; } return ""; }
public static void dispatchEvent(WebSocketHandler ws, KSPEvents ev, String eventData) { if (!_cachedEvents.ContainsKey(ev)) _cachedEvents.Add(ev, eventData); else _cachedEvents[ev] = eventData; getSubscribers(ev).ForEach((WSClient client) => { ws.SendTo(client.ID, eventData); }); }