public void iniciarServidor(string direccion) { _lecturaEscritura.escribeInfoWarm(_textosConsola.getTexto("modoServidor")); FleckLog.Level = Fleck.LogLevel.Error; _listaWebSockets = new List <IWebSocketConnection>(); var server = new WebSocketServer(direccion); server.Start(socket => { socket.OnOpen = () => { muestraNuevaConexion(socket); _listaWebSockets.Add(socket); }; socket.OnClose = () => { muestraFinConexion(socket); _listaWebSockets.Remove(socket); }; socket.OnMessage = (message) => { _lecturaEscritura.escribeInfoText(_textosConsola.getTexto("strMensajeChat") + " " + message); _listaWebSockets.ForEach(s => { if (socket.ConnectionInfo.Id != s.ConnectionInfo.Id) { s.Send(message); } } ); }; socket.OnPing = (b) => { socket.SendPong(b); }; }); var input = _lecturaEscritura.leeEntrada(); while (input != _textosConsola.getTexto("comandoSalir")) { foreach (var socket in _listaWebSockets) { socket.Send(input); } input = _lecturaEscritura.leeEntrada(); } }
public void inicia() { _entradaSalida.escribeInfoText(_textosConsola.getTexto("Bienvenida")); ICliente clienteWS = _serviceProvider.GetService <ICliente>(); using (WebSocket ws = clienteWS.conectarse("ws://127.0.0.1:" + _puerto.ToString())) { if (ws.ReadyState != WebSocketState.Closed) { //modo Cliente _entradaSalida.escribeInfoWarm(_textosConsola.getTexto("modoCliente")); clienteWS.establecerNombreUsuario(); clienteWS.iniciaChat(); } else { //modo Servidor IServidor servidor = _serviceProvider.GetService <IServidor>(); servidor.iniciarServidor("ws://127.0.0.1:" + _puerto); } } }