Guest User

Untitled

a guest
Jan 21st, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.14 KB | None | 0 0
  1. public class SocketProvider : ISocketProvider
  2. {
  3. private readonly IJsonService _jsonService;
  4. private readonly ICommandInvoker _commandInvoker;
  5. private readonly IList<IWebSocketConnection> _connections = new List<IWebSocketConnection>();
  6.  
  7. public SocketProvider(WebSocketServer server, IJsonService jsonService, ICommandInvoker commandInvoker)
  8. {
  9. Configure(server);
  10. _jsonService = jsonService;
  11. _commandInvoker = commandInvoker;
  12. }
  13.  
  14. public void Configure(WebSocketServer server)
  15. {
  16. server.Start(socket =>
  17. {
  18. socket.OnOpen = () => _connections.Add(socket);
  19. socket.OnClose = () => _connections.Remove(socket);
  20. socket.OnMessage = (m =>
  21. {
  22. var msg = _jsonService.Deserialize<SocketMessage>(m);
  23. _commandInvoker.InvokeFor(msg);
  24. });
  25. });
  26. }
  27.  
  28. public void Listen()
  29. {
  30. // this is here for semantics. We need to move the configure stuff into here
  31. }
  32.  
  33. public void Send(string message)
  34. {
  35. _connections
  36. .ToList()
  37. .Each(socket => socket.Send(message));
  38. }
  39. }
Add Comment
Please, Sign In to add comment