예제 #1
0
 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);
 }
예제 #2
0
        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!");
        }