Program.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using Client.SSE;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.IO;
  5. using System.Net.Http;
  6. using System.Security.Policy;
  7. using System.Text;
  8. using System.Text.Json;
  9. using System.Text.Json.Serialization;
  10. using System.Threading;
  11. using System.Threading.Tasks;
  12. namespace Client
  13. {
  14. class Program
  15. {
  16. static void Main(string[] args)
  17. {
  18. //SSE
  19. try
  20. {
  21. var cts = new CancellationTokenSource();
  22. var header = new Dictionary<string, string>() { { "X-Auth-Name", "IES5" } };
  23. //var sse = new EventSource(new Uri("https://localhost:5001/service/sse"), headeer, 5000);
  24. var sse = new EventSource(new Uri("https://api2.teammodel.net/service/sse"), header, 5000);
  25. sse.StateChanged += Sse_StateChanged;
  26. sse.EventReceived += Sse_EventReceived;
  27. sse.Start(cts.Token);
  28. //cts?.Cancel(); 中斷SSE Client連線
  29. }
  30. catch (TaskCanceledException ex)
  31. {
  32. Console.WriteLine(ex.Message);
  33. }
  34. catch (AggregateException ex)
  35. {
  36. Console.WriteLine(ex.Message);
  37. }
  38. catch (Exception ex)
  39. {
  40. Console.WriteLine(ex.Message);
  41. }
  42. Console.ReadLine();
  43. }
  44. private static void Sse_EventReceived(object sender, ServerSentEventReceivedEventArgs e)
  45. {
  46. var mm = e.Message;
  47. Console.WriteLine(mm.Data);
  48. }
  49. private static void Sse_StateChanged(object sender, StateChangedEventArgs e)
  50. {
  51. //CONNECTING 0 連線中
  52. //OPEN 1 開啟
  53. //CLOSED 2 關閉
  54. var aa = e.State;
  55. Console.WriteLine(aa.ToString());
  56. }
  57. }
  58. }