public void Start(IServerParams pParams, Action <IClientConnection> pClientConnectedAction) { if (!(pParams is ServerParams objParams)) { Log.Error("Incorrect parameters for WebSocket server"); throw new Exception("Incorrect parameters for WebSocket server"); } _objParams = objParams; _objServer.ConnectionTimeoutSeconds = _objParams.ConnectionTimeoutSeconds; _objClientConnected = pClientConnectedAction; if (!String.IsNullOrEmpty(_objParams.CertPath)) { if (!System.IO.File.Exists(_objParams.CertPath)) { Log.Error($"{_objParams.CertPath} not found"); throw new System.IO.FileNotFoundException($"{_objParams.CertPath} not found"); } _objServer.Start( _objParams.IP, _objParams.Port, new X509Certificate2(new X509Certificate2(System.IO.File.ReadAllBytes(_objParams.CertPath), _objParams.CertPassword)) ); } else { _objServer.Start(_objParams.IP, _objParams.Port); } }
//Initializes the web socket server that listens for incoming requests private static void InitializeWebSockets() { allSockets = new List <IWebSocketConnection>(); server = new WebSocketServer(WEB_SOCKET_SERVICE_URL); server.Start(socket => { socket.OnOpen = () => { Console.WriteLine("Connection Opened"); offer = null; allSockets.Add(socket); }; socket.OnClose = () => { Console.WriteLine("Connection Closed!"); offer = null; allSockets.Remove(socket); }; socket.OnMessage = message => { Console.WriteLine(message); HandleMessage(message); }; }); }
public void startListening(int port) { 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.Send("Connected"); ClientConnect(socket); }; socket.OnClose = () => { // Console.WriteLine("Close!"); //allSockets.Remove(socket); ClientDisconnect(socket); }; socket.OnMessage = message => { //Console.WriteLine(message); // allSockets.ToList().ForEach(s => s.Send("Echo: " + message)); MessageRecived(socket, message); }; }); }
private UseSocket(string Ip) { this._address = Ip; try { _Servier = new WebSocketServer(this._address); _Servier.Start(socket => { socket.OnMessage = msg => { Message(socket.GetPaarmiter(username), msg); }; socket.OnOpen = () => { Open(socket); }; socket.OnClose = () => { OnClose(socket); }; socket.OnBinary = b => { BinaryMessage(socket.GetPaarmiter(username), b); }; }); } catch { throw new Exception("参数错误!来自UseSocket ,初始化失败"); } }
private void StartServer() { WebSocketServer server = new WebSocketServer(mLocation); mServer = server; server.SupportedSubProtocols = new[] { mBinding.Name }; if (mCertificate != null) { server.Certificate = mCertificate; } if (mGetEnabledSslProtocols != null) { server.EnabledSslProtocols = mGetEnabledSslProtocols(); } mServer.Start(connection => { FleckWampTextConnection <TMessage> wampConnection = new FleckWampTextConnection <TMessage>(connection, mBinding); OnNewConnection(wampConnection); }); }
public async Task Initialize() { var input = string.Empty; _server = new WebSocketServer($"{Url}:{_port}"); await Task.Run(() => _server.Start(socket => { socket.OnOpen = () => { _msgText.Show($"New client connected: {socket.ConnectionInfo.ClientIpAddress}"); ConnectedSockets.Add(socket); }; socket.OnClose = () => { _msgText.Show($"Client disconnected: {socket.ConnectionInfo.ClientIpAddress}"); ConnectedSockets.Remove(socket); }; socket.OnMessage = message => { _msgText.Show(message); ConnectedSockets.ToList().ForEach(s => s.Send(message)); }; })); }
public void StartServerClientSocket() { _webSocketServer.Start(connection => { connection.OnOpen = () => SocketClientOpened(connection); connection.OnBinary = data => SocketMessage(connection, data); connection.OnClose = () => SocketClientClosed(connection); connection.OnMessage = message => connection.Send(message); });; }
public void Start(IWebSocketServer webSocketServer, Action onOpen, Action onClose) { var allSockets = new List <IWebSocketConnection>(); webSocketServer.Start(socket => { socket.OnOpen = () => { onOpen.Invoke(); allSockets.Add(socket); }; socket.OnClose = () => { onClose.Invoke(); _ = allSockets.Remove(socket); }; socket.OnMessage = message => allSockets.ToList().ForEach(s => s.Send(message)); }); }
public RemoteSessionSocketServer(Global global, IWebSocketServer server) { // websockets are not bound to an http context... the remote session manager must be retrieved from an application perspective _global = global; // logs FleckLog.Level = LogLevel.Warn; FleckLog.LogAction = (level, message, ex) => { switch (level) { case LogLevel.Debug: Trace.TraceInformation(message, ex); break; case LogLevel.Warn: Trace.TraceWarning(message, ex); break; case LogLevel.Error: Trace.TraceError(message, ex); break; default: Trace.TraceInformation(message, ex); break; } }; // sockets _sockets = new List <IWebSocketConnection>(); _socketsLock = new object(); // start sockets server server.Start(socket => { socket.OnOpen = () => { Open(socket); }; socket.OnMessage = message => ProcessMessage(socket, message); socket.OnError = exception => { Trace.TraceError("Websocket error {0}", exception); }; socket.OnClose = () => { Close(socket); }; }); }
private UseSocket(string Ip) { this._address = Ip; _Servier = new WebSocketServer(this._address); _Servier.Start(socket => { socket.OnMessage = msg => { Message(socket.GetPaarmiter(username), msg); }; socket.OnOpen = () => { Open(socket); }; socket.OnClose = () => { OnClose(socket); }; socket.OnBinary = b => { BinaryMessage(socket.GetPaarmiter(username), b); }; }); }
public void Start(Action <IWampConnection> config) { _webSocketServer.Start(socket => { if (socket == null) { throw new ArgumentNullException("socket"); } if (socket.ConnectionInfo == null) { throw new ArgumentNullException("socket.ConnectionInfo"); } if (!socket.ConnectionInfo.SubProtocol.Equals(WampSubProtocol)) { throw new ArgumentException("SubProtocol"); } var connection = new WampConnection(socket, config); socket.OnOpen = connection.OnOpen; socket.OnClose = connection.OnClose; socket.OnMessage = msg => OnMessage(connection, msg); }); }
public WebSocketManager(string Host, uint Port) { string location = "ws://" + Host + ":" + Port; _webSocketServer = new WebSocketServer(location); FleckLog.Level = LogLevel.Error; _webSocketClientManager = new WebSocketClientManager(); _webSocketHandlerManager = new WebSocketHandlerManager(); _webSocketServer.Start(socket => { socket.OnOpen = () => { var Uuid = Guid.NewGuid().ToString(); log.Info("Connection created -> " + socket.ConnectionInfo.ClientIpAddress + " (" + Uuid + ")"); var socketClient = new WebSocketClient(Uuid, socket); _webSocketClientManager.RegisterSocketClient(socketClient); socketClient.Send(new HeyHandler(Uuid)); }; socket.OnClose = () => { var socketClient = _webSocketClientManager.GetWebSocketClient(socket); GameEnvironment.GetGameManager().DestroyGame(socketClient.Game); log.Info("Connection destroyed -> " + socket.ConnectionInfo.ClientIpAddress + " (" + socketClient.Uuid + ")"); _webSocketClientManager.DeregisterSocketClient(socket); }; socket.OnMessage = (message) => { try { var Payload = JsonConvert.DeserializeObject <MessageObject>(message); if (Payload.Event == null) { throw new Exception("No event handler was passed."); } var Handler = _webSocketHandlerManager.GetIncomingEventHandler(Payload.Event); if (Handler == null) { throw new Exception("No handler was found for specified identifier"); } var SocketClient = _webSocketClientManager.GetWebSocketClient(socket); if (SocketClient == null) { throw new Exception("No SocketClient instance was found for the socket connection"); } LogMessage(SocketClient.Uuid, message); Handler.Execute(SocketClient, Payload); } catch (Exception ex) { log.Error(ex); } }; }); log.Info("WebSocketManager (" + location + ") -> LOADED!"); }
public void Start(Action <IWebSocketConnection> config) { _webSocketServer.Start(config); }
public void Start() => _webSocketServer.Start(IP, Port);
//Initializes the web socket server that listens for incoming requests private static void InitializeWebSockets() { allSockets = new List<IWebSocketConnection>(); server = new WebSocketServer(WEB_SOCKET_SERVICE_URL); server.Start(socket => { socket.OnOpen = () => { Console.WriteLine("Connection Opened"); offer = null; allSockets.Add(socket); }; socket.OnClose = () => { Console.WriteLine("Connection Closed!"); offer = null; allSockets.Remove(socket); }; socket.OnMessage = message => { Console.WriteLine(message); HandleMessage(message); }; }); }