biz_socketServer.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.IO;
  7. using Newtonsoft.Json;
  8. using HXX.Scanner.Socket;
  9. using HXX.Scanner.Common;
  10. using HXX.Scanner.Biz.Socket;
  11. namespace HXX.Scanner.Biz
  12. {
  13. /// <summary>
  14. /// ws工作管理
  15. /// </summary>
  16. public class biz_socketServer
  17. {
  18. /// <summary>
  19. /// 启动web socket
  20. /// </summary>
  21. /// <param name="url"></param>
  22. /// <returns></returns>
  23. public static bool Start(string url)
  24. {
  25. return SocketServerManager.Start(url, on_message_byte, on_message_string, on_close, on_connect);
  26. }
  27. /// <summary>
  28. /// 当新连接进入时
  29. /// </summary>
  30. /// <param name="connId"></param>
  31. private static void on_connect(IntPtr connId)
  32. {
  33. biz_connectMessage.Work(connId);
  34. }
  35. /// <summary>
  36. /// 当新消息到达时(string)
  37. /// </summary>
  38. /// <param name="connId"></param>
  39. /// <param name="data"></param>
  40. private static void on_message_string(IntPtr connId, string data)
  41. {
  42. //do nothing
  43. }
  44. /// <summary>
  45. /// 当新消息到达时(byte)
  46. /// </summary>
  47. /// <param name="connId"></param>
  48. /// <param name="data"></param>
  49. private static void on_message_byte(IntPtr connId, byte[] data)
  50. {
  51. Task.Run(() =>
  52. {
  53. biz_socketTask.DoWork(connId, data);
  54. });
  55. }
  56. /// <summary>
  57. /// 当连接关闭时
  58. /// </summary>
  59. /// <param name="connId"></param>
  60. /// <param name="connection_count"></param>
  61. public static void on_close(IntPtr connId, int connection_count)
  62. {
  63. //if (connection_count <= 1)
  64. //{
  65. // config_environment.scan_state = false;
  66. //}
  67. }
  68. /// <summary>
  69. /// 主动发消息
  70. /// </summary>
  71. /// <param name=""></param>
  72. /// <returns></returns>
  73. public static void Send(string txt)
  74. {
  75. //SocketServerManager.Send_All(txt);
  76. SocketServerManager.Send_Single(config_environment.current_invoker, txt);
  77. }
  78. }
  79. }