codypiersall / pynng

Python bindings for Nanomsg Next Generation.
https://pynng.readthedocs.io
MIT License
267 stars 58 forks source link

selectors dont work with recv_fd #96

Open ruby690 opened 2 years ago

ruby690 commented 2 years ago

I want to get an event. nanomsg , https://github.com/nanomsg/nng/issues/786, tells me use recv_fd for other event loop, if you had one, I test like this:

addr = 'tcp://localhost:31310'
self.nng = pynng.Bus0(listen=addr, recv_buffer_size=None)
self.selector = selectors.SelectSelector()
self.selector.register(
    self.nng.recv_fd,
    selectors.EVENT_READ | selectors.EVENT_WRITE)

I send like this:

addr = 'tcp://localhost:31310'
with pynng.Bus0(dial=addr) as s1:
    print('client')
    s1.send_msg(Message(b'hello'))

but the event loop, self.selector.select(1), report nothing. what happend? How can I use my event loop?