Server.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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. [HubName("MyTestHub")]
  13. public class MyHub : Hub
  14. {
  15. public void Send(string name, string message)
  16. {
  17. String msg = String.Format("Message send by {0}: {1}", name, message);
  18. Console.WriteLine(msg);
  19. Clients.Client(GlobalModel._ids[0]).addMessage(msg);
  20. }
  21. public void Sign(string projectNo)
  22. {
  23. Groups.Add(Context.ConnectionId, projectNo);
  24. }
  25. public void SameGroupMessage(string name)
  26. {
  27. Clients.Group(name).SendClient($"咱们是同一个组{name}");
  28. }
  29. public override Task OnConnected()
  30. {
  31. Console.WriteLine("Client connected: " + Context.ConnectionId);
  32. GlobalModel._ids.Add(Context.ConnectionId);
  33. return base.OnConnected();
  34. }
  35. public override Task OnDisconnected(Boolean stopCall)
  36. {
  37. Console.WriteLine("Client disconnected: " + Context.ConnectionId);
  38. return base.OnDisconnected(true);
  39. }
  40. }
  41. public class GlobalModel
  42. {
  43. public static List<string> _ids = new List<string>();
  44. }
  45. }