public void InitializeSockets() { _sockets = new List<IWebSocketConnection>(); var server = new WebSocketServer("ws://localhost:8181"); server.Start(socket => { socket.OnOpen = () => { _sockets.Add(socket); }; socket.OnClose = () => { _sockets.Remove(socket); }; socket.OnMessage = message => { JavaScriptSerializer js = new JavaScriptSerializer(); dynamic obj = js.Deserialize<object>(message); dynamic listaComandos = obj["Palabras"]; Audio.añadirComandos(listaComandos); }; }); }
public void InitializeListener() { var server = new WebSocketServer("ws://localhost:8989/FileTail"); server.Start(socket => { socket.OnOpen = () => Console.WriteLine("Open!"); socket.OnClose = () => Console.WriteLine("Close!"); socket.OnMessage = message => socket.Send(message); }); //var listener = new TcpListener(IPAddress.Loopback, 8989); //try //{ // listener.Start(); // using (var client = listener.AcceptTcpClient()) // using (var stream = client.GetStream()) // using (var reader = new StreamReader(stream)) // using (var writer = new StreamWriter(stream)) // { // writer.WriteLine("HTTP/1.1 101 Web Socket Protocol Handshake"); // writer.WriteLine("Upgrade: WebSocket"); // writer.WriteLine("Connection: Upgrade"); // writer.WriteLine("WebSocket-Origin: http://localhost:50695"); // writer.WriteLine("WebSocket-Location: ws://localhost:8989/websession"); // writer.WriteLine(""); // } // listener.Stop(); //} //catch //{ } }
private static void InitializeConnection() { var server = new WebSocketServer("ws://0.0.0.0:8181"); server.Start(socket => { socket.OnOpen = () => { _clients.Add(socket); }; socket.OnClose = () => { _clients.Remove(socket); }; socket.OnMessage = message => { switch (message) { case "Color": _mode = Mode.Color; break; case "Depth": _mode = Mode.Depth; break; default: break; } Console.WriteLine("Switched to " + message); }; }); }
private void Initialize() { var server = new WebSocketServer("ws://0.0.0.0:8282"); server.Start(socket => { socket.OnOpen = () => { _clients.Add(socket); }; socket.OnClose = () => { _clients.Remove(socket); }; socket.OnMessage = message => { //var eventObject = Serialization.DeserializeEnvelope<ContractMarker>(message); //_commandReceivedSubject.OnNext(eventObject); Tracer.Trace(message); }; socket.OnBinary = data => { Tracer.Trace("Binary data sent from client o_0"); }; }); }
public void StartServer() { var allSockets = new List<IWebSocketConnection>(); var server = new WebSocketServer("ws://localhost:8181"); server.Start(socket => { socket.OnOpen = () => { //Console.WriteLine("Open!"); allSockets.Add(socket); }; socket.OnClose = () => { //Console.WriteLine("Close!"); allSockets.Remove(socket); }; socket.OnMessage = message => { var date = DateTime.Now.ToShortTimeString(); //SaveMessage(socket.ConnectionInfo.Id, message); //Console.WriteLine(message); allSockets.ToList().ForEach(s => s.Send(date + ": " + message)); }; }); //server.Close(); //ServiceHost host = new ServiceHost(typeof(MyService)); }
private static void InitializeServer() { var server = new WebSocketServer("ws://localhost:8181"); server.Start(socket => { socket.OnOpen = () => { Console.WriteLine("Connected to " + socket.ConnectionInfo.ClientIpAddress); _clients.Add(socket); }; socket.OnClose = () => { Console.WriteLine("Disconnected from " + socket.ConnectionInfo.ClientIpAddress); _clients.Remove(socket); }; socket.OnMessage = message => { Console.WriteLine(message); }; }); _serverInitialized = true; Console.ReadLine(); }
static void Main(string[] args) { string url = args.Length > 0 ? args[0] : "ws://localhost:8181"; server = new WebSocketServer(url); server.Start(socket => { socket.OnOpen = () => Open(socket); socket.OnClose = () => Close(socket); socket.OnMessage = message => Receive(socket, message); }); Console.WriteLine("Type a message to send to the client (type 'exit' to close):"); var input = Console.ReadLine(); while (input != "exit") { foreach (IWebSocketConnection socket in allSockets) { //standard socket raw send method socket.Send(input); //find our dynamic sockpuppet for this socket, and call a dynamic method clientDynamicWindows[socket.ConnectionInfo.Id].document.write("called from a dynamic object method: " + input); //find our strongly typed interface sockpuppet for this socket, and call a typed method (that matches a method for our chosen context on the client)\ clientWindows[socket.ConnectionInfo.Id].alert("called from an interface method: " + input); } input = Console.ReadLine(); } }
static void Main() { FleckLog.Level = LogLevel.Debug; var allSockets = new List<IWebSocketConnection>(); var server = new WebSocketServer("ws://0.0.0.0:8181"); server.Start(socket => { socket.OnOpen = () => { Console.WriteLine("Open!"); allSockets.Add(socket); }; socket.OnClose = () => { Console.WriteLine("Close!"); allSockets.Remove(socket); }; socket.OnMessage = message => { Console.WriteLine(message); // process the message dynamic gameState = gameServer.MessageBroker.ProcessMessage(message); string serializedState = _serializer.Serialize(gameState); //allSockets.ToList().ForEach(s => s.Send("Echo: ")); }; }); var input = Console.ReadLine(); while (input != "exit") { input = Console.ReadLine(); } }
public void Run(string serverUrl) { var server = new WebSocketServer(serverUrl); server.Start(socket => { socket.OnOpen = () => { onClientConnected(socket); }; socket.OnClose = () => { onClientDisconnected(socket, null); }; socket.OnMessage = (message) => { onClientMessage(socket, message, null); }; socket.OnBinary = (message) => { onClientMessage(socket, message, null); }; }); }
public void SendData() { var server = new Fleck.WebSocketServer("ws://127.0.0.1:8081/"); server.Start(socket => { socket.OnOpen = () => { Console.WriteLine("Open!"); }; socket.OnMessage = message => { Console.WriteLine(message); if (message.StartsWith("Venda")) { string[] dados = message.Split('|'); //abrir conexão com o banco de dados SQL. //Verificar o pedido //Resposta para o cliente socket.Send("Confirmado"); } }; socket.OnClose = () => { Console.WriteLine("Close!"); }; }); Console.ReadKey(); }
public void Start() { Fleck.WebSocketServer server = new Fleck.WebSocketServer("ws://localhost:8181"); server.Start(socket => { socket.OnOpen = () => { Console.WriteLine("Connection open."); this._sockets.Add(socket); }; socket.OnClose = () => { Console.WriteLine("Connection closed"); this._sockets.Remove(socket); }; }); this._stocks = Builder <Stock> .CreateListOfSize(1000).WhereAll().Build(); if (this._timer == null) { this._timer = new Timer(SendStock, null, 0, 1500); Console.WriteLine(""); Console.WriteLine("Sending stock info to all connected clients."); } Console.ReadLine(); }
public void Init(string port) { FleckLog.Level = LogLevel.Warn; _allSockets = new List<IWebSocketConnection>(); var websocketaddr = "ws://127.0.0.1:" + port; Logger.WriteMinorEvent("Attempting to open a WebSocketServer on " + websocketaddr); _server = new WebSocketServer(websocketaddr); try { _server.Start(socket => { socket.OnOpen = () => { Debug.WriteLine("Backend received an request to open a BloomWebSocketServer socket"); _allSockets.Add(socket); }; socket.OnClose = () => { Debug.WriteLine("Backend received an request to close BloomWebSocketServer socket"); _allSockets.Remove(socket); }; }); } catch (SocketException ex) { Logger.WriteEvent("Opening a WebSocketServer on " + websocketaddr + " failed. Error = " + ex); ErrorReport.NotifyUserOfProblem(ex, "Bloom cannot start properly (cannot set up some internal communications){0}{0}" + "What caused this?{0}" + "Possibly another version of Bloom is running, perhaps not very obviously.{0}{0}" + "What can you do?{0}" + "Click OK, then exit Bloom and restart your computer.{0}" + "If the problem keeps happening, click 'Details' and report the problem to the developers.", Environment.NewLine); } }
public void Start() { Fleck.WebSocketServer server = new Fleck.WebSocketServer("ws://0.0.0.0:62127"); server.Start(socket => { Connection connection = new Connection(this, socket); lock (readLock) { connections.Add(connection); } connection.Start(); gameManager.OnJoin(connection); } ); // Sleep. Sleep the peace of the dead. System.Threading.Thread.Sleep(-1); //while (true) // We will never ever exit // Console.ReadLine(); }
static void Main() { FleckLog.Level = LogLevel.Debug; var allSockets = new List<IWebSocketConnection>(); var server = new WebSocketServer("ws://localhost:8181"); server.Start(socket => { socket.OnOpen = () => { Console.WriteLine("连接成功"); allSockets.Add(socket); }; socket.OnClose = () => { Console.WriteLine("连接已关闭"); allSockets.Remove(socket); }; socket.OnMessage = message => { Console.WriteLine("客户端发来消息"+message); //allSockets.ForEach(s => s.Send(message)); }; }); var input = Console.ReadLine(); while (input != "exit") { foreach (var socket in allSockets.ToList()) { socket.Send(input); } input = Console.ReadLine(); } }
public void WebSocketInit() { WebSocketServer.Start(socketConnection => { socketConnection.OnClose = () => { Console.WriteLine("连接关闭"); webSockets.Remove(socketConnection); }; socketConnection.OnOpen = () => { Console.WriteLine("开启连接"); webSockets.Add(socketConnection); }; socketConnection.OnError = ex => { Console.WriteLine("报错了,服务端关闭连接"); socketConnection.Close(); }; socketConnection.OnMessage = clientMsg => { Console.WriteLine($"接收客户端的信息{clientMsg}"); socketConnection.Send($"返回给客户端信息:{clientMsg}"); }; }); }
public void Start() { List<IWebSocketConnection> sockets = new List<IWebSocketConnection>(); Fleck.WebSocketServer server = new Fleck.WebSocketServer("ws://127.0.0.1:8181"); server.Start(socket => { socket.OnOpen = () => { Console.WriteLine("Connection open."); sockets.Add(socket); }; socket.OnClose = () => { Console.WriteLine("Connection closed."); sockets.Remove(socket); }; socket.OnMessage = message => { Console.WriteLine("Client says: " + message); sockets.ToList().ForEach(s => s.Send(" client says:" + message)); }; }); string input = Console.ReadLine(); while (input != "exit") { sockets.ToList().ForEach(s => s.Send(input)); input = Console.ReadLine(); } }
static void Main(string[] args) { var server = new WebSocketServer("ws://localhost:8181"); server.Start(socket => { socket.OnOpen = () => { Console.WriteLine("Open: " + socket.ConnectionInfo.Id); }; socket.OnClose = () => { Console.WriteLine("Close: " + socket.ConnectionInfo.Id); ChatServer.Instance.ClientLost(socket); }; socket.OnMessage = message => { Console.WriteLine("Message: " + socket.ConnectionInfo.Id); Console.WriteLine(" " + message); ChatServer.Instance.Accept(socket, message); }; }); Console.ReadLine(); }
static void Main(string[] args) { var webSocketServer = new WebSocketServer("ws://127.0.0.1:8081"); var sockets = new List<IWebSocketConnection>(); webSocketServer.Start(socket => { socket.OnOpen = () => { sockets.Add(socket); }; socket.OnMessage = mensagem => { foreach (var s in sockets) { s.Send(mensagem); } }; socket.OnClose = () => { sockets.Remove(socket); }; }); Console.ReadKey(); }
public ChatHandler() { chatSocketList = new List<IWebSocketConnection>(); var server = new WebSocketServer("ws://localhost:5002/chat"); server.Start(socket => { socket.OnOpen = () => { Console.WriteLine("User connected to Chat"); chatSocketList.Add(socket); //socket.Send(JsonConvert.SerializeObject(Main.ludo.Chat)); }; socket.OnClose = () => { chatSocketList.Remove(socket); }; socket.OnMessage = message => { Console.WriteLine("[ChatHandler] Incoming: " + message); Message msg = JsonConvert.DeserializeObject<Message>(message); msg.TimeStamp = DateTime.Now; Main.ludo.Chat.Add(msg); foreach (var s in chatSocketList.ToList()) { s.Send(JsonConvert.SerializeObject(msg)); } }; }); }
public bool StartWebSocketServer() { WSRConfig cfg = WSRConfig.GetInstance(); int port = cfg.WebSocket; if (port < 0) { return false; } if (cfg.WSSmooth) filter1 = new DepthFilteredSmoothing(); if (cfg.WSAverage) filter2 = new DepthAveragedSmoothing(); ImageFormat format = cfg.WSType == "png" ? ImageFormat.Png : ImageFormat.Jpeg; Sockets = new List<IWebSocketConnection>(); Server = new WebSocketServer("ws://localhost:" + port); Server.Start(socket => { socket.OnOpen = () => { cfg.logInfo("WEBSCK", "Connected to: " + socket.ConnectionInfo.ClientIpAddress); lock (Sockets) { Sockets.Add(socket); } }; socket.OnClose = () => { cfg.logInfo("WEBSCK", "Disconnected from: " + socket.ConnectionInfo.ClientIpAddress); lock (Sockets) { Sockets.Remove(socket); } }; socket.OnMessage = message => { SendWebSocket(socket, GreenScreen(message), format); }; }); return true; }
public void Start() { List <IWebSocketConnection> sockets = new List <IWebSocketConnection>(); Fleck.WebSocketServer server = new Fleck.WebSocketServer("ws://127.0.0.1:8181"); server.Start(socket => { socket.OnOpen = () => { Console.WriteLine("Connection open."); sockets.Add(socket); }; socket.OnClose = () => { Console.WriteLine("Connection closed."); sockets.Remove(socket); }; socket.OnMessage = message => { Console.WriteLine("Client says: " + message); sockets.ToList().ForEach(s => s.Send(" client says:" + message)); }; }); string input = Console.ReadLine(); while (input != "exit") { sockets.ToList().ForEach(s => s.Send(input)); input = Console.ReadLine(); } }
public Connec() { asdassd.Add("MenuGetir", Getir); Method_Call M = new Method_Call(); //Type Ty = Type.GetType("InanYalcin_FleckSoket.Model.Site." + message, true); //var b = Ty; //var Deger = M.Method(Ty,message ); FleckLog.Level = LogLevel.Debug; var allSockets = new List<IWebSocketConnection>(); var server = new WebSocketServer("ws://localhost:8181/consoleappsample"); server.Start(socket => { socket.OnOpen = () => { allSockets.Add(socket); }; socket.OnClose = () => { allSockets.Remove(socket); }; socket.OnMessage = message => { //var c = System.Activator.CreateInstance(Type.GetType("InanYalcin_FleckSoket.Model.Site." + message)); var c = asdassd[message](); socket.Send(JsonConvert.SerializeObject(c, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore })); //allSockets.ToList().ForEach(s => s.Send("Echo: " + message)); }; }); }
public static void Start() { JavaScriptSerializer serializer = new JavaScriptSerializer(); FleckLog.Level = LogLevel.Debug; var allSockets = new List<IWebSocketConnection>(); var server = new WebSocketServer("ws://0.0.0.0:8181"); server.Start(socket => { socket.OnOpen = () => { Debug.WriteLine("Open!"); allSockets.Add(socket); }; socket.OnClose = () => { Debug.WriteLine("Close!"); allSockets.Remove(socket); }; socket.OnMessage = message => { var jsonObj = serializer.Deserialize<MessageFormat>(message); Debug.WriteLine("[username]: " + jsonObj.username); Debug.WriteLine("[nickname]: " + jsonObj.nickname); Debug.WriteLine("[content]: " + jsonObj.content); Debug.WriteLine(""); string msg = String.Format("{0}: {1}", jsonObj.nickname, jsonObj.content); allSockets.ToList().ForEach(s => s.Send(msg)); }; }); }
public static void init() { FleckLog.Level = LogLevel.Debug; allSockets = new List<IWebSocketConnection>(); server = new WebSocketServer("ws://localhost:1337"); server.Start(socket => { socket.OnOpen = () => { Console.WriteLine("Open!"); allSockets.Add(socket); }; socket.OnClose = () => { Console.WriteLine("Close!"); allSockets.Remove(socket); }; socket.OnMessage = message => { Console.WriteLine(message); if (message == "SENDMEANIMAGE") { Kinect.sendImage(); } }; }); }
public void StartServer() { var server = new WebSocketServer("ws://localhost:10000"); server.Start(ws => { ws.OnOpen = () => OnOpenConnection(ws); }); }
public void Initialize() { _server = new WebSocketServer(_port, "ws://localhost:" + _port + "/"); // Nagle is a good algorithm, but not for games. Disable it. _server.ListenerSocket.NoDelay = true; _server.Start(OnConfig); }
public IActionResult server() { //websocket string ipAddress = string.Empty; var host = System.Net.Dns.GetHostEntry(Dns.GetHostName()); List <IWebSocketConnection> sockets = new List <IWebSocketConnection>(); foreach (var ip in host.AddressList) { if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) { ipAddress = ip.ToString(); break; } } //string ipadd = "wss://panshubeinewfleck.azurewebsites.net"; //ipadd = "ws://" + ipAddress + ":80"; Fleck.WebSocketServer server = new Fleck.WebSocketServer("wss://" + ipAddress + ":8088"); //Fleck.WebSocketServer server = new Fleck.WebSocketServer(ipadd); string path = System.Environment.CurrentDirectory; bool isexist = System.IO.File.Exists(path + "//panshubeiclub.pfx"); if (isexist) { server.Certificate = new X509Certificate2(path + "//panshubeiclub.pfx", "panshubei"); } //server.Certificate = new X509Certificate2(path+"//panshubei.club.pfx", "panshubei"); try { server.Start(socket => { Trace.WriteLine("FleckSocket=>server.start"); socket.OnOpen = () => { Trace.WriteLine("FleckSocket=>server.open"); sockets.Add(socket); }; socket.OnClose = () => { Trace.WriteLine("FleckSocket=>server.close"); sockets.Remove(socket); }; socket.OnMessage = message => { Trace.WriteLine("FleckSocket=>server.message and the message is : " + message); sockets.ToList().ForEach(s => s.Send(" client says: " + message)); }; }); } catch (Exception ex) { Trace.WriteLine("FleckSocket=>err" + ex.ToString()); throw; } return(View()); }
public SocketServer() { FleckLog.LogAction = (level, message, ex) => { if (ex != null) { message += ex.ToString(); } switch (level) { case LogLevel.Debug: //Logger.log(13, Category.SocketServer, Severity.Debug, message); break; case LogLevel.Error: Logger.log(14, Category.SocketServer, Severity.Error, message); break; case LogLevel.Warn: Logger.log(15, Category.SocketServer, Severity.Warn, message); break; default: Logger.log(16, Category.SocketServer, Severity.Info, message); break; } }; Fleck.WebSocketServer server = new Fleck.WebSocketServer(Settings.socketServerUrl); server.Start(socket => { var playerWebSocket = new PlayerWebsocket(socket); socket.OnOpen = () => { if (playerWebSocket.isAuthenticated) { PlayerWebsocketConnections.AddSocket(playerWebSocket); } else { playerWebSocket.Close(); } }; socket.OnClose = () => { if (playerWebSocket.isAuthenticated) { PlayerWebsocketConnections.RemoveSocket(playerWebSocket); } }; socket.OnMessage = message => { if (playerWebSocket.isAuthenticated) { Router.Route(playerWebSocket, message); } }; }); this.server = server; }
static void Main() { FleckLog.Level = LogLevel.Error; var renderers = new ConcurrentDictionary<IWebSocketConnection, IRenderer>(); var proxyRenderer = new ProxyRenderer(); proxyRenderer.AddRenderer( new ConsoleRenderer()); var allSockets = new List<IWebSocketConnection>(); var server = new WebSocketServer("ws://localhost:8080/websession"); server.Start(socket => { socket.OnOpen = () => { allSockets.Add(socket); renderers[socket] = new WebRenderer(socket); proxyRenderer.AddRenderer(renderers[socket]); if (allSockets.Count == 1) { var size = new Size(10, 15); var dto = new InitMessageDto(new SizeDto(size)); socket.Send(dto.ToJson()); var engine = new GameEngine(size, new ConsoleInputListener(), proxyRenderer); engine.Start(); } else { var size = new Size(10, 15); var dto = new InitMessageDto(new SizeDto(size)); socket.Send(dto.ToJson()); } }; socket.OnClose = () => { allSockets.Remove(socket); proxyRenderer.RemoveRenderer(renderers[socket]); IRenderer toRemove; renderers.TryRemove(socket, out toRemove); }; socket.OnMessage = message => { //Console.WriteLine(message); //allSockets.ToList().ForEach(s => s.Send("Echo: " + message)); }; }); while (true) { Thread.Sleep(1000); } // Console.ReadLine(); }
/// <summary> /// Start the server listening. /// </summary> /// <param name="sHostURI"></param> public void Start(String sHostURI) { // Stop it. Stop(); // Start the server listening on the port specified by args. Server = new WebSocketServer(sHostURI); Server.Start(OnClient); Running = true; }
public void StartServer() { var server = new WebSocketServer("ws://localhost:8080"); server.Start(socket => { socket.OnOpen = () => { Connections.Add(socket); socket.Send(Serializer.Rewind()); }; socket.OnClose = () => Connections.Remove(socket); socket.OnMessage = (string m) => OnMessage(socket, m); }); }
public void Start() { WebSocketServer = new Fleck.WebSocketServer(URL); WebSocketServer.Start(socket => { socket.OnOpen = () => OnOpen(socket); socket.OnClose = () => OnClose(socket); socket.OnMessage = m => OnMessage(socket, m); }); }
public AuthenticationHandler() { var server = new WebSocketServer("ws://localhost:5000/authenticate"); server.Start(socket => { socket.OnOpen = () => Console.WriteLine("[Authenticate] " + socket.ConnectionInfo.ClientIpAddress + " connected with Guid: " + socket.ConnectionInfo.Id); socket.OnClose = () => removeUserFromList(socket); socket.OnMessage = jsonMessage => startAuthentication(jsonMessage, socket); }); }
public Communication(Action connectCallback, Action<string[]> messageCallback) { Server = new WebSocketServer("ws://0.0.0.0:11650/socket"); Server.Start(socket => { socket.OnOpen = () => SetSocket(socket, connectCallback); socket.OnClose = () => Connected = false; socket.OnMessage = message => messageCallback(Split(message)); }); }
public void FeatureParityTest() { using (var server = new WebSocketServer("http://127.0.0.1:8989")) { server.Start(ConfigureIntegrationTestConnection); SendIntegrationTestMessages(); } AssertIntegrationTestMessages(); }
public void Start(int portNumber) { var server = new WebSocketServer("ws://localhost:" + portNumber); server.Start(socket => { socket.OnOpen = () => OnClientConnected(socket); }); _server = server; }
public MainWindow() { //hardcoded vJoyFeeder class for testing, is this where we want to call the class? vJoyFeeder vj = new vJoyFeeder(); InitializeComponent(); //var server = new WebSocketServer("http://localhost:8080"); //server.Start(socket => //{ // socket.OnOpen = () => Console.WriteLine("Open!"); // socket.OnClose = () => Console.WriteLine("Close!"); // //socket.OnMessage = message => socket.Send(message); //}); FleckLog.Level = LogLevel.Debug; var allSockets = new List<IWebSocketConnection>(); var server = new WebSocketServer("localhost:8181"); server.Start(socket => { socket.OnOpen = () => { Console.WriteLine("Open!"); allSockets.Add(socket); }; socket.OnClose = () => { Console.WriteLine("Close!"); allSockets.Remove(socket); }; socket.OnMessage = message => { // This is the only line of code that outputs to console. Each instruction given to parser will return a string, which // can then be used in the windows APP UI. //Console.WriteLine(vj.parseInstructionString(message)); allSockets.ToList().ForEach(s => s.Send("Echo: " + message)); allSockets.ToList().ForEach(s => s.Send("Return: " + vj.parseInstructionString(message))); }; }); var input = Console.ReadLine(); while (input != "exit") { foreach (var socket in allSockets.ToList()) { socket.Send(input); } input = Console.ReadLine(); } }
public void Start() { List<IWebSocketConnection> sockets = new List<IWebSocketConnection>(); WebSocketServer server = new WebSocketServer("ws://127.0.0.1:60000"); server.Start(socket => { socket.OnOpen = () => { Console.WriteLine("Connection opened"); sockets.Add(socket); UpdateTime(sockets); }; socket.OnClose = () => { Console.WriteLine("Connection closed"); sockets.Remove(socket); }; socket.OnMessage = message => { Console.WriteLine("Message from client: " + message); sockets.ToList().ForEach(s => s.Send("Message received: " + message)); }; }); }
/// <summary> /// Start web socket server. /// </summary> private void StartWebSocketServer() { // stop web socket server in case a server is already running. StopWebSocketServer(); _limitFpsStopwatch.Start(); _webSocketServer = new Fleck.WebSocketServer(string.Format("ws://0.0.0.0:{0}", Port)); _webSocketServer.Start(socket => { socket.OnOpen = () => OnClientConnect(socket); socket.OnClose = () => OnClientDisconnect(socket); socket.OnMessage = message => OnClientMessage(socket, message); }); }
WebSocketTest() { server = new Fleck.WebSocketServer("ws://localhost:8123"); //something. server.Start(socket => { socket.OnOpen = () => allSockets.Add(socket); socket.OnClose = () => allSockets.Remove(socket); socket.OnMessage = message => { foreach (var s in allSockets) { s.Send(message); } }; }); }
public OverlayServer(OverlayServerConfig config) { this.config = config; try { var WSS = new Fleck.WebSocketServer($"ws://127.0.0.1:{config.Port}"); // Set the websocket listeners WSS.Start(connection => { connection.OnOpen += () => OnWsConnectionOpen(connection); connection.OnClose += () => OnWSConnectionClose(connection); }); } catch (Exception e) { logger.Fatal(e, "failed so start websocket server"); } }
public void Start() { FleckLog.Level = LogLevel.Debug; if (_server == null) { Logger.Instance().Info(" >> Starting Web Socket Server..."); // start request manager // RequestManager.Instance().Start(); var serverLocation = string.Format("ws://localhost:{0}", 8181); _server = new Fleck.WebSocketServer(serverLocation); _server.Start(ServerConfig); Logger.Instance().InfoWithFormat(" >> Running Web Socket Server {0}.", _server.Location); } }
public void Start() { _server.Start(socket => { socket.OnOpen = () => { _log.WriteInfo("----Connect client----"); lock (_obj) _sockets.Add(socket); }; socket.OnClose = () => { _log.WriteInfo("Client closed"); lock (_obj) _sockets.Remove(socket); }; socket.OnPing = msg => { socket.SendPong(Encoding.UTF8.GetBytes("pong")); }; }); }
/// <summary> /// Main entry point. /// </summary> /// <param name="args"></param> static void Main(string[] args) { ParseCliParameters(ref args); var host = Dns.GetHostEntry(Dns.GetHostName()); var ipAddress = "127.0.0.1"; foreach (var ip in host.AddressList) { if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) { ipAddress = ip.ToString(); break; } } var webSocketServer = new Fleck.WebSocketServer($"ws://{ipAddress}:{ServerPort}"); webSocketServer.Start(socket => { socket.OnOpen = () => { Console.WriteLine($"Connection Opened by {socket.ConnectionInfo.ClientIpAddress}."); clients.Add(socket); countClients++; }; socket.OnClose = () => { Console.WriteLine($"Connection Closed by {socket.ConnectionInfo.ClientIpAddress}."); clients.Remove(socket); countClients--; }; }); Console.WriteLine("WebSocket Server Started!"); StartArduino(); Console.ReadKey(); }
/// <summary> /// Entry point for the application. /// </summary> /// <param name="args"> /// Command-line arguments for this console application are as follows: /// /// Param 1: Server name. Cannot contain spaces. Valid characters are A-Z, a-z, 0-9, _, -, and . /// Param 2: Port number. Must be between 1000 and 65535. /// Param 3: Admin password. Cannot contain spaces. /// /// A sample run might look like this, if invoked manually: C:\> PokerServer.exe MyName 8500 MyPass /// </param> static void Main(string[] args) { if (args.Length != 3) { ExitWithError("Invalid number of command-line arguments (Password can not contain spaces)."); } int portNumber; if (!int.TryParse(args[1], out portNumber)) { ExitWithError("Port number is invalid."); } if (portNumber < 1000 || portNumber > 65535) { ExitWithError("Port number is outside valid range [1000-65535]."); } if (!Regex.IsMatch(args[0], @"^[a-zA-Z0-9_\-.]+$")) { ExitWithError("Name is invalid. Valid name characters are A-Z, a-z, 0-9, _, -, and ."); } Name = args[0]; Port = portNumber; // Set up the named pipe server and the initial async connection listener. NamedPipeServerStream nps = new NamedPipeServerStream("wss" + Process.GetCurrentProcess().Id, PipeDirection.Out, 1, PipeTransmissionMode.Message, PipeOptions.Asynchronous); nps.BeginWaitForConnection(PipeHandler, nps); cs = new CardServer(args[2]); server = new Fleck.WebSocketServer("ws://" + Environment.MachineName + ":" + Port + "/"); server.Start(s => cs.NewClient((WebSocketConnection)s)); while (true) { Console.ReadKey(); } }
public WebSocketServer(string ip, int port, Action <string, Log.LogLevel> logDelegate) { GetPhysicallyInstalledSystemMemory(out memorySize); FleckLog.Level = LogLevel.Error + 1; Fleck.WebSocketServer server = new Fleck.WebSocketServer($"ws://{ip}:{port}"); this.logDelegate = logDelegate; server.Start(serverConnected); try { IISManager.GetSites().ForEach(info => { siteCurrentConnections.Add(new PerformanceCounter("Web Service", "Current Connections", info.Name)); }); } catch { } Timer timer = new Timer(1000); timer.Elapsed += Timer_Elapsed; timer.Start(); }
public void Initialize() { string location = TTSettings.GetAppSetting <string>("hostingUrl", defaultVal: "ws://0.0.0.0:8082"); _server = new Fleck.WebSocketServer(location); _server.Start(socket => { socket.OnOpen = () => { var clientInfo = new ClientInfo(socket.ConnectionInfo.Id, socket); ClientInfo.TryAdd(socket.ConnectionInfo.Id, clientInfo); var logMessage = "New client connected successfully. id = " + clientInfo.ConnectionGuid; Logger.Current.Info(logMessage); NotifySubscriber(_previousQuotes, clientInfo); }; socket.OnError = OnError; socket.OnClose = () => { var found = ClientInfo.FirstOrDefault(ci => ci.Key == socket.ConnectionInfo.Id).Value; if (found != null) { ClientInfo.TryRemove(socket.ConnectionInfo.Id, out found); var logMessage = "Client disconnected. id = " + found.ConnectionGuid; Logger.Current.Info(logMessage); } }; socket.OnMessage = message => OnMessageFromClient(message, socket); }); }
static void Main(string[] args) { var container = new WindsorContainer(); container.Install(FromAssembly.This()); container.Install(FromAssembly.Named("Router")); container.Install(FromAssembly.Named("Repository")); //container.Install(FromAssembly.Named("Mapper")); //container.Register(Castle.MicroKernel.Registration.Component.For<Router.Router>().ImplementedBy<Router.Router>()); //container.Register(Castle.MicroKernel.Registration.Component.For<Router.Styler>().ImplementedBy<Router.Styler>()); //container.Register(Castle.MicroKernel.Registration.Component.For<Router.IStyler>().ImplementedBy<Router.IStyler>()); //container.Register(Castle.MicroKernel.Registration.Component.For<Repository.MapRepo>().ImplementedBy<Repository.MapRepo>()); var router = container.Resolve <Router.Router>(); // private readonly IRepository<State> _stateRepo; //private readonly IRepository<Connection> _connectionRepo; //private readonly IRepository<User> _userRepo; //private readonly IRepository<NavCategory> _navCategoryRepo; //private readonly IRepository<StatusBarItem> _statusBarRepo; //private readonly IRepository<Subscription> _subscriptionRepository; //private readonly IStyler _styler; _allSockets = new List <IWebSocketConnection>(); var websocketServer = new Fleck.WebSocketServer("ws://127.0.0.1:58951"); websocketServer.Start(socket => { socket.OnOpen = () => { Console.WriteLine("Open!"); CreateConnection(socket); _allSockets.Add(socket); }; socket.OnClose = () => { Console.WriteLine("Close!"); DeleteConnection(socket); _allSockets.Remove(socket); }; socket.OnMessage = message => { switch (message) { case "seed": var initializer = container.Resolve <Repository.SockMinInitializer>(); var context = container.Resolve <Repository.SockMinDbContext>(); initializer.Seed(context); break; case "query1": socket.Send(@"content~<table><tr><td>Name</td><td>Address</td><td>Phone</td></tr> <tr><td>Jeff</td><td>the place</td><td>234234</td></tr></table>"); Console.WriteLine(message + " received"); break; case "query2": socket.Send(@"content~<table><tr><td>Year</td><td>Quarter</td><td>Sales(£k)</td></tr> <tr><td>2016</td><td>Q1</td><td>437</td></tr></table>"); Console.WriteLine(message + " received"); break; case "query3": socket.Send(@"content~<table><tr><td>Computer</td><td>Software</td><td>Version</td></tr> <tr><td>TG-IIS01</td><td>Amadeus</td><td>1.2.3</td></tr></table>"); Console.WriteLine(message + " received"); break; case "query4": socket.Send(@"content~ <svg class='chart' width='420' height='150' aria-labelledby='title desc' role='img'> <title id = 'title'> A bar chart showing information </title> <desc id = 'desc'> 4 apples; 8 bananas; 15 kiwis; 16 oranges; 23 lemons </desc> <g class='bar'> <rect width = '40' height='19'></rect> <text x = '45' y='9.5' dy='.35em'>4 apples</text> </g> <g class='bar'> <rect width = '80' height='19' y='20'></rect> <text x = '85' y='28' dy='.35em'>8 bananas</text> </g> <g class='bar'> <rect width = '150' height='19' y='40'></rect> <text x = '150' y='48' dy='.35em'>15 kiwis</text> </g> <g class='bar'> <rect width = '160' height='19' y='60'></rect> <text x = '161' y='68' dy='.35em'>16 oranges</text> </g> <g class='bar'> <rect width = '230' height='19' y='80'></rect> <text x = '235' y='88' dy='.35em'>23 lemons</text> </g> </svg>"); Console.WriteLine(message + " received"); break; case "query5": socket.Send(@"content~<table><tr><td>Computer</td><td>Software</td><td>Version</td></tr> <tr><td>TG-IIS01</td><td>Amadeus</td><td>1.2.3</td></tr></table>"); Console.WriteLine(message + " received"); break; default: var command = message.Split(':'); switch (command[0]) { case "updateState": router.ChangeConnectionState(socket, command[1]); break; default: break; } socket.Send("messages~" + message + " received"); Console.WriteLine(message + " received"); break; } }; }); while (true) { System.Threading.Thread.Sleep(10000); foreach (var socket in _allSockets.ToList()) { socket.Send("status~" + DateTime.UtcNow.ToString("o") + " all is well on connection " + socket.ConnectionInfo.Id); } } }
public void Start() { _server = new WebSocketServer(GetUrl()); _server.Start(MessageReceived); }
/// <summary> /// Entry point for the application. /// </summary> /// <param name="args"> /// Command-line arguments for this console application are as follows: /// /// Param 1: Server name. Cannot contain spaces. Valid characters are A-Z, a-z, 0-9, _, -, and . /// Param 2: Port number. Must be between 1000 and 65535. /// Param 3: Admin password. Cannot contain spaces. /// /// A sample run might look like this, if invoked manually: C:\> PokerServer.exe MyName 8500 MyPass /// </param> static void Main(string[] args) { if (args.Length != 4) { args = new string[4]; args[0] = "FC"; args[1] = "8000"; args[2] = "abcd"; args[3] = "127.0.0.1"; Console.WriteLine("Enter Room Name:"); args[0] = Console.ReadLine(); Console.WriteLine("Enter Port No Bet 8000 & 9000:"); args[1] = Console.ReadLine(); Console.WriteLine("Enter Room Password:"******"Enter Hosting IP or D for auto detect:"); args[3] = Console.ReadLine(); } int portNumber; if (!int.TryParse(args[1], out portNumber)) { ExitWithError("Port number is invalid."); } if (portNumber < 1000 || portNumber > 65535) { ExitWithError("Port number is outside valid range [1000-65535]."); } if (!Regex.IsMatch(args[0], @"^[a-zA-Z0-9_\-.]+$")) { ExitWithError("Name is invalid. Valid name characters are A-Z, a-z, 0-9, _, -, and ."); } Name = args[0]; Port = portNumber; if (args[3].Equals("D")) { if (!System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable()) { throw new Exception("Network not available."); } IPHostEntry host = Dns.GetHostEntry(Dns.GetHostName()); MachineIp = host .AddressList .FirstOrDefault(ip => ip.AddressFamily == AddressFamily.InterNetwork).ToString(); } else { MachineIp = args[3]; } // Set up the named pipe server and the initial async connection listener. NamedPipeServerStream nps = new NamedPipeServerStream("wss" + Process.GetCurrentProcess().Id, PipeDirection.Out, 1, PipeTransmissionMode.Message, PipeOptions.Asynchronous); nps.BeginWaitForConnection(PipeHandler, nps); cs = new CardServer(args[2]); try { //server = new Fleck.WebSocketServer("ws://" + Environment.MachineName + ":" + Port + "/"); server = new Fleck.WebSocketServer("ws://" + MachineIp + ":" + Port + "/"); server.Start(s => cs.NewClient((WebSocketConnection)s)); Console.WriteLine("PID: " + Process.GetCurrentProcess().Id); } catch (Exception ex) { Console.WriteLine("Exception: " + ex.Message); } while (true) { Console.ReadKey(); } }
static void Main(string[] args) { FleckLog.Level = LogLevel.Debug; var allSockets = new List <SocketInfo>(); var server = new Fleck.WebSocketServer("ws://0.0.0.0:9146"); //var x = new Fleck.websocketc server.Start(socket => { socket.OnOpen = () => { Console.WriteLine("连接打开!"); var x = allSockets.Where(i => i.ID == socket.ConnectionInfo.Id.ToString()).FirstOrDefault(); if (x != null) { return; } allSockets.Add(new SocketInfo() { ID = socket.ConnectionInfo.Id.ToString(), IWebSocketConnection = socket }); }; socket.OnClose = () => { Console.WriteLine("连接关闭!"); var x = allSockets.Where(i => i.ID == socket.ConnectionInfo.Id.ToString()).FirstOrDefault(); if (x != null) { allSockets.Remove(x); } foreach (var item in allSockets) { item.IWebSocketConnection.Send($"{x.User}下线了"); } }; socket.OnMessage = message => { if (string.IsNullOrEmpty(message)) { return; } var fromUser = allSockets.Where(i => i.ID == socket.ConnectionInfo.Id.ToString()).FirstOrDefault(); if (fromUser != null && string.IsNullOrEmpty(fromUser.User)) { fromUser.User = message; foreach (var item in allSockets) { item.IWebSocketConnection.Send($"{message}上线啦。"); } return; } Console.WriteLine($"{socket.ConnectionInfo.Id}:{message}"); foreach (var item in allSockets) { item.IWebSocketConnection.Send($"{fromUser.User}:{message}"); } //allSockets.Select(i=>i.IWebSocketConnection).ToList().ForEach(s => s.Send($"{s.us}:{message} ")); }; }); var input = Console.ReadLine(); while (input != "exit") { foreach (var socket in allSockets.Select(i => i.IWebSocketConnection).ToList()) { socket.Send(input); } input = Console.ReadLine(); } }
/// <summary> /// 开启服务器 /// </summary> public static void Start() { try { FleckLog.Level = LogLevel.Error; server.Start(socket => { string MyConn = socket.ConnectionInfo.ClientIpAddress + ":" + socket.ConnectionInfo.ClientPort; socket.OnOpen = () => { //Console.WriteLine("Open!"); SystemManager.Logger(new CSharpUtility.LogRec() { Info = "Open Connect", IP = MyConn, logTime = DateTime.Now }); allSockets.Add(MyConn, socket); }; socket.OnClose = () => { //Console.WriteLine("Close!"); SystemManager.Logger(new CSharpUtility.LogRec() { Info = "Close Connect", IP = MyConn, logTime = DateTime.Now }); allSockets.Remove(MyConn); }; socket.OnMessage = Request => { SystemManager.Logger(new CSharpUtility.LogRec() { Info = "Request:" + Request, IP = MyConn, logTime = DateTime.Now }); ServerResponse.RequestType requestType = (ServerResponse.RequestType)Enum.Parse(typeof(ServerResponse.RequestType), Request.Substring(0, 3)); string Response = ServerResponse.ProcessRequest(Request, requestType); string GameId = string.Empty; requestType = (ServerResponse.RequestType)Enum.Parse(typeof(ServerResponse.RequestType), Response.Substring(0, 3)); switch (requestType) { case ServerResponse.RequestType.开始游戏: case ServerResponse.RequestType.开始单机游戏: socket.Send(Response); // Key:GameID + IsHost Value:Connection allGames.Add(Response.Substring(3, 6), MyConn); break; case ServerResponse.RequestType.初始化状态: case ServerResponse.RequestType.回合结束: case ServerResponse.RequestType.攻击行为: //初始化状态是后手发起的,结果需要推送给双方 GameId = Request.Substring(3, 5); SendToBoth(GameId, Response); break; case ServerResponse.RequestType.使用手牌: GameId = Request.Substring(3, 5); if (Response.Substring(3, 2) == CardUtility.strOK) { //使用动作完成后的战场状态 SendToBoth(GameId, Response.Substring(0, 3) + Response.Substring(5)); } else { //需要后续操作,中断续行 SystemManager.Logger(new CSharpUtility.LogRec() { Info = "Response:" + Response, IP = MyConn, logTime = DateTime.Now }); socket.Send(Response); } break; case ServerResponse.RequestType.结束游戏: GameId = Request.Substring(3, 5); //游戏字典去除,但是链接没有结束 // Key:GameID + IsHost Value:Connection allGames.Remove(Request.Substring(3, 6)); bool CanRemove = true; foreach (var item in allGames.Keys) { if (item.StartsWith(GameId)) { CanRemove = false; break; } } if (CanRemove) { ServerResponse.RemoveGame(GameId); } break; default: SystemManager.Logger(new CSharpUtility.LogRec() { Info = "Response:" + Response, IP = MyConn, logTime = DateTime.Now }); socket.Send(Response); break; } }; }); } catch (SocketException) { } finally { // Stop listening for new clients. } }
public static void Init(string url) { if (socket == null) { socket = new Fleck.WebSocketServer(url); socket.RestartAfterListenError = true; FleckLog.LogAction = (level, message, ex) => { switch (level) { case LogLevel.Debug: logger.Debug("WebSocket -> " + message, ex); break; case LogLevel.Error: logger.Error("WebSocket -> " + message, ex); break; case LogLevel.Warn: logger.Warn("WebSocket -> " + message, ex); break; default: logger.Info("WebSocket -> " + message, ex); break; } }; socket.Start(conn => { conn.OnOpen = () => { if (connections.FirstOrDefault(x => x.ConnectionInfo.Id == conn.ConnectionInfo.Id) == null) { connections.Add(conn); } logger.Info("WebSocket -> new connection from: " + conn.ConnectionInfo.ClientIpAddress + " with GUID: " + conn.ConnectionInfo.Id); }; conn.OnMessage = message => { logger.Info("WebSocket -> Message received from: " + conn.ConnectionInfo.ClientIpAddress + " with GUID: " + conn.ConnectionInfo.Id); WebSocketServer.SendMessage(message, conn.ConnectionInfo.Id); }; conn.OnClose = () => { connections.Remove(connections.First(x => x.ConnectionInfo.Id == conn.ConnectionInfo.Id)); logger.Info("WebSocket -> close connection from: " + conn.ConnectionInfo.ClientIpAddress + " with GUID: " + conn.ConnectionInfo.Id); }; conn.OnBinary = binary => { WebSocketServer.SendMessage(Encoding.UTF8.GetString(binary), conn.ConnectionInfo.Id); }; conn.OnError = error => { logger.Error("WebSocket -> Error with connection: " + conn.ConnectionInfo.ClientIpAddress + " and GUID: " + conn.ConnectionInfo.Id, error); }; }); logger.Info("WebSocket server initialized for url: " + url); } }
static void Main(string[] args) { _allSockets = new List <IWebSocketConnection>(); _allMeans = new Dictionary <string, decimal>(); _allCounts = new Dictionary <string, decimal>(); var serverAddresses = new Dictionary <string, string>(); //serverAddresses.Add("USA-WestCoast", "ws://127.0.0.1:58951"); //serverAddresses.Add("USA-EastCoast", "ws://127.0.0.1:58952"); serverAddresses.Add("UK", "ws://127.0.0.1:58953"); serverAddresses.Add("EU-North", "ws://127.0.0.1:58954"); //serverAddresses.Add("EU-South", "ws://127.0.0.1:58955"); foreach (var serverAddress in serverAddresses) { _allMeans.Add(serverAddress.Key, 0m); _allCounts.Add(serverAddress.Key, 0m); } var thisNodeName = ConfigurationSettings.AppSettings["thisNodeName"]; //for example "UK" var serverSocketAddress = serverAddresses.First(x => x.Key == thisNodeName); serverAddresses.Remove(thisNodeName); var websocketServer = new Fleck.WebSocketServer(serverSocketAddress.Value); websocketServer.Start(socket => { socket.OnOpen = () => { Console.WriteLine("Open!"); _allSockets.Add(socket); }; socket.OnClose = () => { Console.WriteLine("Close!"); _allSockets.Remove(socket); }; socket.OnMessage = message => { Console.WriteLine(message + " received"); var parameters = message.Split('~'); var remoteHost = parameters[0]; var remoteMean = decimal.Parse(parameters[1]); var remoteCount = decimal.Parse(parameters[2]); _allMeans[remoteHost] = remoteMean; _allCounts[remoteHost] = remoteCount; }; }); while (true) { //evaluate my local average and count Random rand = new Random(DateTime.Now.Millisecond); _localMean = 234.00m + (rand.Next(0, 100) - 50) / 10.0m; _localCount = 222m + rand.Next(0, 100); //evaluate my local aggregate average using means and counts sent from all other nodes //could publish aggregate averages to other nodes, if you wanted to monitor disagreement between nodes var total_mean_times_count = 0m; var total_count = 0m; foreach (var server in serverAddresses) { total_mean_times_count += _allCounts[server.Key] * _allMeans[server.Key]; total_count += _allCounts[server.Key]; } //add on local mean and count which were removed from the server list earlier, so won't be processed total_mean_times_count += (_localMean * _localCount); total_count = total_count + _localCount; _localAggregate_average = (total_mean_times_count / total_count); _localAggregate_count = total_count; Console.WriteLine("local aggregate average = {0}", _localAggregate_average); System.Threading.Thread.Sleep(10000); foreach (var serverAddress in serverAddresses) { using (var wscli = new ClientWebSocket()) { var tokSrc = new CancellationTokenSource(); using (var task = wscli.ConnectAsync(new Uri(serverAddress.Value), tokSrc.Token)) { task.Wait(); } using (var task = wscli.SendAsync(new ArraySegment <byte>(Encoding.UTF8.GetBytes(thisNodeName + "~" + _localMean + "~" + _localCount)), WebSocketMessageType.Text, false, tokSrc.Token )) { task.Wait(); } } } } }