Exemplo n.º 1
0
        private void PushMessageToUser(MessageTypes type, TCPServerClientInfo clientInfo, User user, TCPServer server, string message = "")
        {
            Message msg = new Message(type, user, message);
            TCPServerInteractEventArgs args = new TCPServerInteractEventArgs(msg, clientInfo, false, false);

            server.Send(args);
        }
Exemplo n.º 2
0
        public void InteractHandler(object o, TCPServerInteractEventArgs args)
        {
            Message   message = args.Object as Message;
            User      DbUser  = this.Authenticate(message.User);
            TCPServer server  = o as TCPServer;

            switch (message.MessageType)
            {
            case MessageTypes.login:
                if (DbUser != null)
                {
                    this.Login(args.ClientInfo, DbUser);
                    this.PushMessageToGroup(MessageTypes.group, DbUser, server, this.CountGroup(DbUser.Group));
                    args.Object    = new Message(MessageTypes.login_success, DbUser);
                    args.KeepAlive = true;
                    args.CallBack  = true;
                }
                else
                {
                    args.KeepAlive = false;
                }
                break;

            case MessageTypes.logout:
                if (DbUser != null && this.LoggedIn(DbUser))
                {
                    this.Logout(args.ClientInfo);
                    this.PushMessageToGroup(MessageTypes.group, DbUser, server, this.CountGroup(DbUser.Group));
                    args.Object    = new Message(MessageTypes.logout_success, DbUser);
                    args.KeepAlive = true;
                    args.CallBack  = true;
                }
                else
                {
                    args.KeepAlive = false;
                }
                break;

            case MessageTypes.post:
                if (DbUser != null && this.LoggedIn(DbUser))
                {
                    this.PushMessageToGroup(MessageTypes.post, DbUser, server, message.Text);
                    args.Object    = new Message(MessageTypes.post_success, DbUser);
                    args.KeepAlive = true;
                    args.CallBack  = true;
                }
                else
                {
                    args.KeepAlive = false;
                }
                break;

            case MessageTypes.cast:
                if (DbUser != null && this.LoggedIn(DbUser))
                {
                    this.PushDataToGroup(MessageTypes.cast, DbUser, server, message.BinaryData);
                    args.Object    = new Message(MessageTypes.cast_success, DbUser);
                    args.KeepAlive = true;
                    args.CallBack  = true;
                }
                else
                {
                    args.KeepAlive = false;
                }
                break;

            case MessageTypes.cast_end:
                if (DbUser != null && this.LoggedIn(DbUser))
                {
                    this.PushMessageToGroup(MessageTypes.cast_end, DbUser, server);
                    args.Object    = new Message(MessageTypes.cast_end_success, DbUser);
                    args.KeepAlive = true;
                    args.CallBack  = true;
                }
                else
                {
                    args.KeepAlive = false;
                }
                break;

            case MessageTypes.mail:
                if (DbUser != null && this.LoggedIn(DbUser))
                {
                    this.Mail();
                    args.Object    = new Message(MessageTypes.mail_success, DbUser);
                    args.KeepAlive = true;
                    args.CallBack  = true;
                }
                else
                {
                    args.KeepAlive = false;
                }
                break;

            default:
                args.KeepAlive = false;
                break;
            }
        }
Exemplo n.º 3
0
        private void PushDataToUser(MessageTypes type, TCPServerClientInfo clientInfo, User user, TCPServer server, byte[] binaryData = null)
        {
            Message msg = new Message(type, user, null, binaryData);
            TCPServerInteractEventArgs args = new TCPServerInteractEventArgs(msg, clientInfo, false, false);

            server.Send(args);
        }
Exemplo n.º 4
0
        private static void StartTCPServer(string ipAddress, int port)
        {
            TCPServer server = new TCPServer(new ConsoleMessageProcessor(), ipAddress, port);

            server.Listen();
        }