private TcpDuplexServerHostEnvironment()
            {
                var protocol = new TcpDuplexServerProtocolSetup(8088, new CustomAuthenticationProvider(), true);

                _host = new ZyanComponentHost("CustomAuthenticationTestHost_TcpDuplex", protocol);
                _host.RegisterComponent <ISampleServer, SampleServer>("SampleServer", ActivationType.SingleCall);
            }
            private TcpDuplexServerHostEnvironment()
            {
                var protocol = new TcpDuplexServerProtocolSetup(8092, new NullAuthenticationProvider(), true);

                _host = new ZyanComponentHost("TcpExConnectionLockRegressionTestHost_TcpDuplex", protocol);
                _host.RegisterComponent <ISampleServer, SampleServer>("SampleServer", ActivationType.SingleCall);
            }
示例#3
0
        public override void Run()
        {
            Trace.WriteLine("Zyan.Examples.MiniChat.AzureWorkerRole entry point called", "Information");

            IPEndPoint endPoint = RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["MiniChat"].IPEndpoint;
            TcpDuplexServerProtocolSetup protocol = new TcpDuplexServerProtocolSetup(endPoint.Port, new NicknameAuthProvider(), true);

            ActiveNicknames = new List <string>();

            ZyanComponentHost host = new ZyanComponentHost("MiniChat", protocol);

            host.RegisterComponent <IMiniChat, Zyan.Examples.MiniChat.Server.MiniChat>(ActivationType.Singleton);

            host.ClientLoggedOn += new EventHandler <LoginEventArgs>((sender, e) =>
            {
                Trace.WriteLine(string.Format("{0}: User '{1}' with IP {2} logged on.", e.Timestamp.ToString(), e.Identity.Name, e.ClientAddress));
                ActiveNicknames.Add(e.Identity.Name);
            });
            host.ClientLoggedOff += new EventHandler <LoginEventArgs>((sender, e) =>
            {
                Trace.WriteLine(string.Format("{0}: User '{1}' with IP {2} logged off.", e.Timestamp.ToString(), e.Identity.Name, e.ClientAddress));
                ActiveNicknames.Remove(e.Identity.Name);
            });

            while (true)
            {
                Thread.Sleep(10000);
                Trace.WriteLine("Working", "Information");
            }
        }
示例#4
0
        private EventServer()
        {
            _catalog = new ComponentCatalog();
            _catalog.RegisterComponent <IEventComponentSingleton, EventComponentSingleton>(ActivationType.Singleton);
            _catalog.RegisterComponent <IEventComponentSingleCall, EventComponentSingleCall>(ActivationType.SingleCall);
            _catalog.RegisterComponent <ICallbackComponentSingleton, CallbackComponentSingleton>(ActivationType.Singleton);
            _catalog.RegisterComponent <ICallbackComponentSingleCall, CallbackComponentSingleCall>(ActivationType.SingleCall);
            _catalog.RegisterComponent <IRequestResponseCallbackSingleCall, RequestResponseCallbackSingleCall>(ActivationType.SingleCall);
            _catalog.RegisterComponent <ITimerTriggeredEvent, TimerTriggeredEvent>(ActivationType.Singleton);

            // Setting compression threshold to 1 byte means that all messages will be compressed.
            // This setting should not be used in production code because smaller packets will grow in size.
            // By default, Zyan only compresses messages larger than 64 kilobytes.
            var tcpBinaryProtocol = new TcpBinaryServerProtocolSetup(8082);

            tcpBinaryProtocol.AddServerSinkBeforeFormatter(new CompressionServerChannelSinkProvider(1, CompressionMethod.LZF));
            _tcpBinaryHost = new ZyanComponentHost("TcpBinaryEventTest", tcpBinaryProtocol, _catalog);

            var ipcBinaryProtocol = new IpcBinaryServerProtocolSetup("IpcTestServer");

            ipcBinaryProtocol.AddServerSinkBeforeFormatter(new CompressionServerChannelSinkProvider(1, CompressionMethod.DeflateStream));
            _ipcBinaryHost = new ZyanComponentHost("IpcBinaryEventTest", ipcBinaryProtocol, _catalog);

            var tcpCustomProtocol = new TcpCustomServerProtocolSetup(8083, new NullAuthenticationProvider(), true)
            {
                CompressionThreshold = 1,
                CompressionMethod    = CompressionMethod.DeflateStream
            };

            _tcpCustomHost = new ZyanComponentHost("TcpCustomEventTest", tcpCustomProtocol, _catalog);

            var tcpDuplexProtocol = new TcpDuplexServerProtocolSetup(8084, new NullAuthenticationProvider(), true)
            {
                CompressionThreshold = 1,
                CompressionMethod    = CompressionMethod.DeflateStream
            };

            tcpDuplexProtocol.AddChannelSetting("bindTo", "127.0.0.1");

            _tcpDuplexHost = new ZyanComponentHost("TcpDuplexEventTest", tcpDuplexProtocol, _catalog);

            var httpCustomProtocol = new HttpCustomServerProtocolSetup(8085, new NullAuthenticationProvider(), true)
            {
                CompressionThreshold = 1,
                CompressionMethod    = CompressionMethod.LZF
            };

            _httpCustomHost = new ZyanComponentHost("HttpCustomEventTest", httpCustomProtocol, _catalog);

            var nullChannelProtocol = new NullServerProtocolSetup(1234);

            _nullChannelHost = new ZyanComponentHost("NullEventTest", nullChannelProtocol, _catalog);

            // use legacy blocking events mode because we check the handlers synchronously
            ZyanSettings.LegacyBlockingEvents        = true;
            ZyanSettings.LegacyBlockingSubscriptions = true;
        }
示例#5
0
            private TcpDuplexServerHostEnvironment()
            {
                // use default SRP-6a parameters
                var accounts = new SampleAccountRepository();
                var provider = new SrpAuthenticationProvider(accounts);
                var protocol = new TcpDuplexServerProtocolSetup(8090, provider, true);

                _host = new ZyanComponentHost("CustomAuthenticationTestHost_TcpDuplex", protocol);
                _host.RegisterComponent <ISampleServer, SampleServer>("SampleServer", ActivationType.SingleCall);
            }
示例#6
0
        public static void Main(string[] args)
        {
            var protocol = new TcpDuplexServerProtocolSetup(12345, new NullAuthenticationProvider(), true);

            using (var host = new ZyanComponentHost("Sample", protocol))
            {
                host.RegisterComponent <ISampleService, SampleService>();
                Console.WriteLine("Server started. Press Enter to exit.");
                Console.ReadLine();
            }
        }
示例#7
0
        static void Main(string[] args)
        {
            var protocol = new TcpDuplexServerProtocolSetup(8081, null, true);

            using (var host = new ZyanComponentHost("WhisperChat", protocol))
            {
                host.RegisterComponent <IWhisperChatService, WhisperChatService>(ActivationType.SingleCall);

                Console.WriteLine("Server running.");
                Console.ReadLine();
            }
        }
        public void CreateDisposeAndRecreateComponentHostForTcpDuplexChannel()
        {
            var protocol = new TcpDuplexServerProtocolSetup(8086, new NullAuthenticationProvider(), true);

            using (var host = new ZyanComponentHost("RecreateClientConnectionTestHost_TcpDuplex", protocol))
            {
                host.RegisterComponent <ISampleServer, SampleServer>("SampleServer", ActivationType.SingleCall);
            }

            using (var host = new ZyanComponentHost("RecreateClientConnectionTestHost_TcpDuplex", protocol))
            {
                host.RegisterComponent <ISampleServer, SampleServer>("SampleServer", ActivationType.SingleCall);
            }
        }
示例#9
0
        private void RegisterComponent(int port, string name, RemoteMonitor instance)
        {
            TcpDuplexServerProtocolSetup protocol = new TcpDuplexServerProtocolSetup(port);

            _znHost = new ZyanComponentHost(name, protocol);
            //_znHost.EnableDiscovery();

            //_znHost.RegisterComponent<IMonitor, RemoteMonitor>(ActivationType.Singleton);
            _znHost.RegisterComponent <IMonitor, RemoteMonitor>(instance);

            _znHost.ClientLoggedOn  += ClientLoggedOn;
            _znHost.ClientLoggedOff += ClientLoggedOff;

            Builder.Output(string.Format(ClassName + ": registrado componente {0} en puerto {1}.", name, port), TraceEventType.Verbose);
        }
示例#10
0
        static private void StartComponent()
        {
            try
            {
                _remoteMonitor = new RemoteMonitor();

                //Registrar componente / iniciar servidor

                TcpDuplexServerProtocolSetup protocol = new TcpDuplexServerProtocolSetup(_zsPort);
                //TcpDuplexServerProtocolSetup protocol = new TcpDuplexServerProtocolSetup(Constants.ServerPort, new BasicWindowsAuthProvider());

                _znHost = new ZyanComponentHost(_zsName, protocol);

                // Enable
                //_znHost.PollingEventTracingEnabled = true;

                //_znHost.RegisterComponent<IMonitor, RemoteMonitor>(ActivationType.Singleton);
                _znHost.RegisterComponent <IMonitor, RemoteMonitor>(_remoteMonitor);

                _znHost.ClientLoggedOn += new EventHandler <LoginEventArgs>((sender, e) =>
                {
                    Console.WriteLine(string.Format("{0}: User '{1}' with IP {2} logged on.", e.Timestamp.ToString(), e.Identity.Name, e.ClientAddress));
                });

                _znHost.ClientLoggedOff += new EventHandler <LoginEventArgs>((sender, e) =>
                {
                    Console.WriteLine(string.Format("{0}: User '{1}' with IP {2} logged off.", e.Timestamp.ToString(), e.Identity.Name, e.ClientAddress));
                });


                // Fin OK sin error
                Console.WriteLine("ReplyOK");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }
        }
示例#11
0
        static void Main(string[] args)
        {
            ActiveNicknames = new List <string>();

            TcpDuplexServerProtocolSetup protocol = new TcpDuplexServerProtocolSetup(Properties.Settings.Default.TcpPort, new NicknameAuthProvider(), true);

            using (ZyanComponentHost host = new ZyanComponentHost("MiniChat", protocol))
            {
                host.PollingEventTracingEnabled = true;
                host.ClientHeartbeatReceived   += new EventHandler <ClientHeartbeatEventArgs>(host_ClientHeartbeatReceived);

                host.RegisterComponent <IMiniChat, MiniChat>(ActivationType.Singleton);

                host.ClientLoggedOn += new EventHandler <LoginEventArgs>((sender, e) =>
                {
                    Console.WriteLine(string.Format("{0}: User '{1}' with IP {2} logged on.", e.Timestamp.ToString(), e.Identity.Name, e.ClientAddress));
                    ActiveNicknames.Add(e.Identity.Name);
                });

                host.ClientLoggedOff += new EventHandler <LoginEventArgs>((sender, e) =>
                {
                    Console.WriteLine(string.Format("{0}: User '{1}' with IP {2} logged off.", e.Timestamp.ToString(), e.Identity.Name, e.ClientAddress));
                    ActiveNicknames.Remove(e.Identity.Name);
                });

                host.ClientSessionTerminated += new EventHandler <LoginEventArgs>((sender, e) =>
                {
                    Console.WriteLine(string.Format("{0}: User '{1}' with IP {2} was kicked due to inactivity.", e.Timestamp.ToString(), e.Identity.Name, e.ClientAddress));
                    ActiveNicknames.Remove(e.Identity.Name);
                });

                host.EnableDiscovery();
                Console.WriteLine("Chat server started. Press Enter to exit.");
                Console.ReadLine();
            }
        }