SocketClientCache.cs 820 B

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