Server.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. using Microsoft.AspNet.SignalR.Hubs;
  2. using Microsoft.AspNet.SignalR;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Runtime.Remoting.Contexts;
  7. using System.Text;
  8. using System.Text.RegularExpressions;
  9. using System.Threading.Tasks;
  10. namespace XdCxRhDW.WebApi.SignalR
  11. {
  12. /// <summary>
  13. ///
  14. /// </summary>
  15. [HubName("MyTestHub")]
  16. public class MyHub : Hub
  17. {
  18. /// <summary>
  19. ///
  20. /// </summary>
  21. /// <param name="name"></param>
  22. /// <param name="message"></param>
  23. public void Send(string name, string message)
  24. {
  25. String msg = String.Format("Message send by {0}: {1}", name, message);
  26. Console.WriteLine(msg);
  27. Clients.Client(GlobalModel._ids[0]).addMessage(msg);
  28. }
  29. /// <summary>
  30. ///
  31. /// </summary>
  32. /// <param name="projectNo"></param>
  33. public void Sign(string projectNo)
  34. {
  35. Groups.Add(Context.ConnectionId, projectNo);
  36. }
  37. /// <summary>
  38. ///
  39. /// </summary>
  40. /// <param name="name"></param>
  41. public void SameGroupMessage(string name)
  42. {
  43. Clients.Group(name).SendClient($"咱们是同一个组{name}");
  44. }
  45. /// <summary>
  46. ///
  47. /// </summary>
  48. /// <returns></returns>
  49. public override Task OnConnected()
  50. {
  51. Console.WriteLine("Client connected: " + Context.ConnectionId);
  52. GlobalModel._ids.Add(Context.ConnectionId);
  53. return base.OnConnected();
  54. }
  55. /// <summary>
  56. ///
  57. /// </summary>
  58. /// <param name="stopCall"></param>
  59. /// <returns></returns>
  60. public override Task OnDisconnected(Boolean stopCall)
  61. {
  62. Console.WriteLine("Client disconnected: " + Context.ConnectionId);
  63. return base.OnDisconnected(true);
  64. }
  65. }
  66. /// <summary>
  67. ///
  68. /// </summary>
  69. public class GlobalModel
  70. {
  71. /// <summary>
  72. ///
  73. /// </summary>
  74. public static List<string> _ids = new List<string>();
  75. }
  76. }