enwi/dartzmq

Connect/Send no error message if server is not available

Closed this issue · 3 comments

Describe the Bug
I try to use your library with the environment which I described below.
If I call socket.connect and Socket.send if no Server is available there is no error message and no effect... so I can not detect, that something is not okay?

Environment
OS: Archlinux 6.0.12-arch1-1
Android x86 emulator: Pixel 5 API 30
flutter: 3.3.9
compileSdkVersion 33
ndkVersion flutter.ndkVersion

To Reproduce

  // Send a test message
  // => via zmq
  testzmq() {
    // Tst
    final ZContext context = ZContext();
    final ZSocket socket = context.createSocket(SocketType.req);
    socket.connect("tcp://localhost:6555");
    //socket.sendString("Hello");
    socket.send([1, 2]);
    socket.close();
  }

Expected Behavior
Error message if I can not connect to server / Get Stuck on server.connect

Reproducibility
100%

enwi commented

Hey @alexanderwwagner that behavior is to be expected. Please take a look at the official ZeroMQ documentation.

If you want to figure out if a socket is really connected to an endpoint please take a look at the monitor function. Though I think those methods need to be added to this library first.

As far as I can remember, I thought there was a timeout at this point in the python library... But then I apparently got something wrong. I checked the behavior of the python library again... its the same.
So thank you for your help I will have a look on the links.

enwi commented

@alexanderwwagner I have published a new version that introduces the ZMonitor and the MonitoredZSocket with which you can receive socket events that tell you the state of the socket