Exemplo n.º 1
0
        static void Main(string[] args)
        {
            var cmd = args.FirstOrDefault();

            if (!string.IsNullOrWhiteSpace(cmd) && cmd == "server")
            {
                Console.WriteLine($"Server Run {DateTime.Now.ToString()}");
                var server = new Server();
                for (var i = 0; i < 500; i++)
                {
                    server.SendMessage($"Message-{i}");
                }
            }

            if (!string.IsNullOrWhiteSpace(cmd) && cmd == "client")
            {
                Console.WriteLine($"Client Run {DateTime.Now.ToString()}");
                var client = new Client();

                var    nextDateStartDateTime = new DateTime(2018, 6, 5, 14, 53, 0);
                double millisecondsToWait    = (nextDateStartDateTime - DateTime.Now).TotalMilliseconds;

                var timer = new Timer(
                    (o) => {
                    for (var i = 0; i < 5; i++)
                    {
                        client.GetMessage();
                    }
                }, null, (uint)millisecondsToWait, 0);
            }

            if (!string.IsNullOrWhiteSpace(cmd) && cmd == "event")
            {
                Console.WriteLine($"Event Client Run {DateTime.Now.ToString()}");
                var batch = new Batch();
                batch.Handler += WiriteBatch;

                var client = new EventClient(new ClientSettings {
                    Host = "localhost", PrefetchCount = 10
                });

                var    nextDateStartDateTime = new DateTime(2018, 6, 14, 11, 53, 0);
                double millisecondsToWait    = (nextDateStartDateTime - DateTime.Now).TotalMilliseconds;

                //client.Start(batch.Name, batch.Add);

                var timer = new Timer(
                    (o) => {
                    Console.WriteLine("Run Lisener");
                    client.Start(batch.Name, batch.Add);
                }, null, (uint)millisecondsToWait, 0);
            }

            Console.WriteLine(" Press [enter] to exit.");
            Console.ReadLine();
        }
Exemplo n.º 2
0
        public void Add(EventClient client, ulong tag, string message)
        {
            messages.Add(new Message {
                Value  = message,
                Tag    = tag,
                Client = client
            });

            if (messages.Count() >= 10)
            {
                Handler(messages.Select(x => x.Value).ToList());

                foreach (var msg in messages)
                {
                    msg.Client.Acknowledge(msg.Tag);
                }

                messages.Clear();
            }
        }