SocketClientCache.cs 659 B

12345678910111213141516171819
  1. using InABox.Client.WebSocket;
  2. namespace InABox.Clients
  3. {
  4. public static class SocketClientCache
  5. {
  6. private static Dictionary<string, WebSocketClient> Clients = new Dictionary<string, WebSocketClient>();
  7. public static void StartWebSocket(string url, int port, Guid session)
  8. {
  9. var host = url.Split(new[] { "://" }, StringSplitOptions.RemoveEmptyEntries).LastOrDefault();
  10. Uri uri = new Uri($"http://{host}");
  11. var key = $"{uri.Host}:{uri.Port}${session}";
  12. if (!Clients.ContainsKey(key))
  13. Clients[key] = new WebSocketClient(uri.Host, port, session);
  14. }
  15. }
  16. }