biz_socketTask.cs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  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. namespace HXX.Scanner.Biz.Socket
  11. {
  12. /// <summary>
  13. /// web socket任务分配
  14. /// </summary>
  15. public class biz_socketTask
  16. {
  17. public static void DoWork(IntPtr connId, byte[] data)
  18. {
  19. try
  20. {
  21. //解析命令
  22. var txt = Encoding.UTF8.GetString(data);
  23. var cmd = JsonConvert.DeserializeObject<cmd_base>(txt);
  24. //限制1秒内相同指令抛弃掉
  25. if (!biz_limit.check(cmd.action))
  26. {
  27. return;
  28. }
  29. if (cmd != null && !string.IsNullOrEmpty(cmd.action))
  30. {
  31. switch (cmd.action)
  32. {
  33. case "getScannerList":
  34. {
  35. var detail = JsonConvert.DeserializeObject<cmd_getScannerList>(txt);
  36. biz_getScannerList.Work(connId, detail);
  37. break;
  38. }
  39. case "startScan":
  40. {
  41. var detail = JsonConvert.DeserializeObject<cmd_startScan2>(txt);
  42. biz_startScan.Work(connId, detail);
  43. break;
  44. }
  45. case "stopScan":
  46. {
  47. var detail = JsonConvert.DeserializeObject<cmd_stopScan>(txt);
  48. biz_stopScan.Work(connId, detail);
  49. break;
  50. }
  51. case "checkHeartBeat":
  52. {
  53. var detail = JsonConvert.DeserializeObject<cmd_checkHeartBeat>(txt);
  54. biz_checkHeartBeat.Work(connId, detail);
  55. break;
  56. }
  57. case "pushCompletedScan":
  58. {
  59. break;
  60. }
  61. case "changeScan":
  62. {
  63. var detail = JsonConvert.DeserializeObject<cmd_changeScan>(txt);
  64. biz_changeScan.Work(connId, detail);
  65. break;
  66. }
  67. case "loadImage":
  68. {
  69. var detail = JsonConvert.DeserializeObject<cmd_loadImage>(txt);
  70. biz_loadImage.Work(connId, detail);
  71. break;
  72. }
  73. case "getFailedImage":
  74. {
  75. var detail = JsonConvert.DeserializeObject<cmd_getFailedImage>(txt);
  76. biz_getFailedImage.Work(connId, detail);
  77. break;
  78. }
  79. case "reUpload":
  80. {
  81. var detail = JsonConvert.DeserializeObject<cmd_reUpload>(txt);
  82. biz_reUpload.Work(connId, detail);
  83. break;
  84. }
  85. case "scanTemplate":
  86. {
  87. var detail = JsonConvert.DeserializeObject<cmd_scanTemplate>(txt);
  88. biz_scanTemplate.Work(connId, detail);
  89. break;
  90. }
  91. case "deleteBatch":
  92. {
  93. var detail = JsonConvert.DeserializeObject<cmd_deleteBatch>(txt);
  94. biz_deleteBatch.Work(connId, detail);
  95. break;
  96. }
  97. default:
  98. biz_error.Work(connId, "无法解析 action:" + cmd.action);
  99. break;
  100. }
  101. }
  102. else
  103. {
  104. biz_error.Work(connId, "无法解析:" + txt);
  105. }
  106. }
  107. catch (Exception ee)
  108. {
  109. //LogManager.WriteLog(ee);
  110. //biz_error.Work(connId, "发生错误:" + ee.Message);
  111. }
  112. }
  113. }
  114. }