示例#1
0
        public static long SerialiseCryptoDto <T>(this DealerSocket dealerSocket, object data, CryptoDtoChannel channel, CryptoDtoMode mode)
        {
            T typedData = (T)data;

            byte[] cryptoData = CryptoDtoSerializer.Serialize(channel, mode, typedData);

            dealerSocket
            .SendMoreFrameEmpty()
            .SendFrame(cryptoData);

            return(cryptoData.Length);
        }
示例#2
0
 public static void DealerSend(this DealerSocket socket, KeyData kd)
 {
     byte[] zipData = GZipUtil.Compress(kd.Data);
     socket.SendMoreFrameEmpty().SendMoreFrame(kd.Key).SendFrame(zipData);
 }
        static void Main(string[] args)
        {
            Console.WriteLine("Press any key to start!");
            Console.Read();

            NetMQPoller      Poller2 = new NetMQPoller();
            NetMQQueue <int> Queue   = new NetMQQueue <int>();
            var index  = 0;
            var client = new DealerSocket(">tcp://127.0.0.1:5001");

            prereceivecount = testcount;

            new Thread(() =>
            {
                while (true)
                {
                    Console.WriteLine($"send:{(sendcount) / 10}/s,receive:{(receivecount) / 10}/s");

                    sendcount    = 0;
                    receivecount = 0;

                    Thread.Sleep(1000 * 10);
                }
            }).Start();


            new Thread(() =>
            {
                while (true)
                {
                    if (prereceivecount >= testcount)
                    {
                        prereceivecount = 0;

                        for (var i = 0; i < testcount; i++)
                        {
                            Queue.Enqueue(++index);
                        }
                    }

                    Thread.Sleep(0);
                }
            }).Start();

            client.Options.Identity = Encoding.UTF8.GetBytes($"clientid-{Process.GetCurrentProcess().Id}");
            client.ReceiveReady    += (s, e) =>
            {
                e.Socket.ReceiveFrameBytes();
                var msg = e.Socket.ReceiveFrameString();
                //Console.WriteLine($"RECEIVE:{msg}");
                receivecount++;
                prereceivecount++;
            };
            Queue.ReceiveReady += (s, e) =>
            {
                var msg = e.Queue.Dequeue();
                client.SendMoreFrameEmpty().SendFrame($"{Encoding.UTF8.GetString(client.Options.Identity)}-{msg}");
                //Console.WriteLine($"SEND:{msg}");
                sendcount++;
            };
            Poller2.Add(Queue);
            Poller2.Add(client);
            Poller2.RunAsync();


            Console.WriteLine("Press any key to stop!");
            Console.Read();
        }