Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class SocketProvider : ISocketProvider
- {
- private readonly IJsonService _jsonService;
- private readonly ICommandInvoker _commandInvoker;
- private readonly IList<IWebSocketConnection> _connections = new List<IWebSocketConnection>();
- public SocketProvider(WebSocketServer server, IJsonService jsonService, ICommandInvoker commandInvoker)
- {
- Configure(server);
- _jsonService = jsonService;
- _commandInvoker = commandInvoker;
- }
- public void Configure(WebSocketServer server)
- {
- server.Start(socket =>
- {
- socket.OnOpen = () => _connections.Add(socket);
- socket.OnClose = () => _connections.Remove(socket);
- socket.OnMessage = (m =>
- {
- var msg = _jsonService.Deserialize<SocketMessage>(m);
- _commandInvoker.InvokeFor(msg);
- });
- });
- }
- public void Listen()
- {
- // this is here for semantics. We need to move the configure stuff into here
- }
- public void Send(string message)
- {
- _connections
- .ToList()
- .Each(socket => socket.Send(message));
- }
- }
Add Comment
Please, Sign In to add comment