示例#1
0
    private void ListenerWork()
    {
        AsyncIO.ForceDotNet.Force();
        using (var server = new ResponseSocket())
        {
            server.Bind("tcp://*:12345");

            while (!_listenerCancelled)
            {
                Connected = _contactWatch.ElapsedMilliseconds < ContactThreshold;
                string message = "blah";
                bool   success = false;

                if (sending)
                {
                    success = OutgoingSocketExtensions.TrySendFrame(server, message);
                }
                else
                {
                    success = server.TryReceiveFrameString(out message);
                }

                if (success)
                {
                    sending = !sending;
                    _contactWatch.Restart();
                }
            }
        }
        NetMQConfig.Cleanup();
    }
示例#2
0
    private void ListenerWork()
    {
        AsyncIO.ForceDotNet.Force();
        using (var subSocket = new RequestSocket())
        {
            subSocket.Options.ReceiveHighWatermark = 1000;
            subSocket.Connect("tcp://localhost:12345");
            // subSocket.Subscribe("");
            while (!_listenerCancelled)
            {
                string frameString = "blah";
                bool   success     = false;

                if (!sending)
                {
                    success = subSocket.TryReceiveFrameString(out frameString);
                    if (success)
                    {
                        _messageQueue.Enqueue(frameString);
                    }
                }
                else
                {
                    success = OutgoingSocketExtensions.TrySendFrame(subSocket, frameString);
                }

                // if the transaction was successful,
                if (success)
                {
                    sending = !sending;
                }
            }
            subSocket.Close();
        }
        NetMQConfig.Cleanup();
    }