protected override void ExecuteJsonCommand(JsonWebSocketSession session, Data.RequestEcho commandInfo) { log4j.Info("RequestEcho: " + Newtonsoft.Json.JsonConvert.SerializeObject(commandInfo)); Data.ResponseEcho responseEcho = new Data.ResponseEcho { UUID = commandInfo.UUID, Message = commandInfo.Message }; session.SendJsonMessage(Data.Cmd.TcsCommand.ResponseEcho.ToString(), responseEcho); }
static void Main(string[] args) { log4j.Info("Start Main"); var appServer = new MyAppServer(); //var appServer = new WebSocketServer(); var serverConfig = new ServerConfig { Port = 2012, LogBasicSessionActivity = false, LogCommand = false }; //Setup the appServer if (!appServer.Setup(serverConfig)) //Setup with listening port //if(!appServer.Setup(serverConfig)) { Console.WriteLine("Failed to setup!"); Console.ReadKey(); return; } // WebSocketServer.cs line 531 // if we hook to NewMessageReceived, server won't ExecuteMessage (won't execute our command) //appServer.NewMessageReceived += new SessionHandler<WebSocketSession, string>(AppServer_NewMessageReceived); //appServer.NewSessionConnected += new SessionHandler<WebSocketSession>((target) => //{ // log4j.Info("client connected: " + target.SessionID); //}); appServer.NewSessionConnected += new SessionHandler <JsonWebSocketSession>((s) => { log4j.Info("client connected: " + s.SessionID); }); appServer.SessionClosed += new SessionHandler <JsonWebSocketSession, CloseReason>((session, closeReason) => { log4j.Info("client closed: " + session.SessionID + ", reason: " + closeReason.ToString()); }); //appServer.NewMessageReceived += new SessionHandler<JsonWebSocketSession, string>((s, message) => //{ // log4j.Info("message: " + message); //}); Console.WriteLine(); //Try to start the appServer if (!appServer.Start()) { Console.WriteLine("Failed to start!"); Console.ReadKey(); return; } Console.WriteLine("The server started successfully, press key 'q' to stop it!"); string cmd = Console.ReadLine(); while (cmd != "q") { string[] scmds = cmd.Split(' '); if (scmds[0] == "1") { foreach (var session in appServer.GetAllSessions()) { //session.Send("test 1"); if (scmds.Length >= 2 && scmds[1] != string.Empty) { string msg = cmd.Substring(cmd.IndexOf(" ")).Trim(); Data.ResponseEcho responseEcho = new Data.ResponseEcho { UUID = Guid.NewGuid().ToString(), Message = msg }; session.SendJsonMessage(Data.Cmd.TcsCommand.ResponseEcho.ToString(), responseEcho); } } } cmd = Console.ReadLine(); } //Stop the appServer appServer.Stop(); Console.WriteLine(); Console.WriteLine("The server was stopped!"); }