SignalRExamServerHub.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using Microsoft.AspNetCore.SignalR;
  2. using Microsoft.Extensions.Logging;
  3. namespace IES.ExamServer.DI.SignalRHost
  4. {
  5. public class SignalRExamServerHub : Hub<IClient>
  6. {
  7. private readonly ILogger<SignalRExamServerHub> _logger;
  8. public SignalRExamServerHub(ILogger<SignalRExamServerHub> logger)
  9. {
  10. _logger = logger;
  11. }
  12. }
  13. public interface IClient
  14. {
  15. Task ReceiveMessage(MessageBody message);
  16. Task ReceiveConnection(MessageBody message);
  17. Task ReceiveDisConnection(MessageBody message);
  18. }
  19. public abstract class MessageBody
  20. {
  21. public MessageBody()
  22. {
  23. time = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
  24. }
  25. /// <summary>
  26. /// 连接id
  27. /// </summary>
  28. public virtual string? connid { get; set; }
  29. /// <summary>
  30. /// 客户端id
  31. /// </summary>
  32. public virtual string? clientid { get; set; }
  33. /// <summary>
  34. /// 状态 busy 忙碌,free 空闲,down 离线,error 错误
  35. /// </summary>
  36. public virtual string? status { get; set; }
  37. /// <summary>
  38. /// 消息内容
  39. /// </summary>
  40. public virtual string? content { get; set; }
  41. /// <summary>
  42. /// 消息创建时间
  43. /// </summary>
  44. public virtual long time { get; }
  45. /// <summary>
  46. /// 授权类型,bookjs_api
  47. /// </summary>
  48. public virtual string? grant_type { get; set; }
  49. /// <summary>
  50. /// 消息类型
  51. /// </summary>
  52. public virtual MessageType message_type { get; set; }
  53. }
  54. public enum MessageType
  55. {
  56. conn_success,//连接成功
  57. conn_error,// 连接失败
  58. task_send_success,// 任务发送成功
  59. task_send_error,// 任务发送失败
  60. task_execute_success,// 任务执行成功
  61. task_execute_error,// 任务执行失败
  62. }
  63. }