NetMQ - 轮询经销商套接字并超时

时间:2015-12-03 11:05:35

标签: asynchronous timeout zeromq netmq

我使用DEALER-ROUTER模式在客户端和工作人员之间进行一种负载平衡。

我想知道如何在客户端和服务器之间设置超时以避免无限等待。

我尝试设置TryReceiveMultipartMessage方法的timeout参数,但它没有任何效果。我强迫我的服务器在10秒后回复,甚至将超时设置为1秒我收到了响应。

我的客户代码是:

    public void Main(string Args[])
    {
        using(ctx = NetMQContext.Create())
        {
            using(client = ctx.CreateDealerSocket())
            {
                client.Options.Identity = Encoding.Unicode.GetBytes(Guid.NewGuid().ToString());
                client.Connect("tcp://127.0.0.1:5556");
                client.ReceiveReady += Client_ReceiveReady;
                poller.AddSocket(client);
                poller.PollTillCancelled();
            }
    }


    void Client_ReceiveReady(object sender, NetMQSocketEventArgs e)
    {
        NetMQMessage clientMessage = new NetMQMessage();
        TimeSpan timeout = TimeSpan.FromMilliseconds(1000);
        if (e.Socket.TryReceiveMultipartMessage(timeout, ref clientMessage))
        {
            ...
        }

    }

如何从DEALER套接字收到消息时设置超时?

感谢您的帮助。

0 个答案:

没有答案