SocketClientCache.cs 726 B

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