IwbHub.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. using Abp.Dependency;
  2. using IwbZero.ToolCommon.StringModel;
  3. using Microsoft.AspNet.SignalR;
  4. using System;
  5. using System.Linq;
  6. namespace WeApp.Hubs
  7. {
  8. public class IwbHub : Hub, ITransientDependency
  9. {
  10. /// <summary>
  11. /// 注册链接
  12. /// </summary>
  13. /// <param name="name"></param>
  14. public void Register(string name)
  15. {
  16. Groups.Add(Context.ConnectionId, name);
  17. }
  18. public void SendReload(string no, int type)
  19. {
  20. var arr = no.Split(',').ToList();
  21. var clientGroup = Clients.Groups(arr);
  22. var str = new { no }.Obj2String();
  23. switch (type)
  24. {
  25. case 1:
  26. clientGroup.getReloadAll(str);
  27. break;
  28. case 2:
  29. clientGroup.getReloadStu(str);
  30. break;
  31. case 3:
  32. clientGroup.getReloadLeader(str);
  33. break;
  34. case 4:
  35. clientGroup.getReloadPublic(str);
  36. break;
  37. case 5:
  38. clientGroup.getReloadSpec(str);
  39. break;
  40. case 6:
  41. clientGroup.getReloadPlay(str);
  42. break;
  43. case 20:
  44. clientGroup.getShowTotalRoundScore(str, true);
  45. break;
  46. case 21:
  47. clientGroup.getShowTotalRoundScore(str, false);
  48. break;
  49. }
  50. }
  51. public void SendRefreshCurrentTime(string no, decimal rate = 1, DateTime? date = null)
  52. {
  53. Clients.Group(no).getRefreshCurrentTime(new
  54. {
  55. no,
  56. rate,
  57. date
  58. });
  59. }
  60. public void SendRefreshDownTime(string no, decimal rate = 1, int minute = 15)
  61. {
  62. Clients.Group(no).getRefreshDownTime(new
  63. {
  64. no,
  65. rate,
  66. minute
  67. });
  68. }
  69. public void SendEffectCmd(string no, string effect)
  70. {
  71. Clients.Group(no).getEffectCmd(new
  72. {
  73. no,
  74. effect
  75. });
  76. }
  77. public void SendOperationLog(string no, string role, string word)
  78. {
  79. Clients.Group(no).getOperationLog(new { no, role, word }.Obj2String());
  80. }
  81. }
  82. }