Currently, dw_node supports epoll()-based communications, which is probably the most scalable primitive when dealing with a potentially high number of connected endpoints, albeit being only supported on Linux. A few other options we might want to support may be:
using poll() or ppoll(), which might have similar scalability advantages to epoll(), but more portability;
using select() or pselect().
The last option is probably the most popular and portable, however it suffers from possible scalability drawbacks with several endpoints, due to the need for the client to go through all the file descriptors in the pool, in order to find out which one changed state. On the other hand, a (p)poll() based loop might be more portable, albeit we should check whether we loose anything w.r.t. epoll().
This choice might be available through an option like
Currently, dw_node supports epoll()-based communications, which is probably the most scalable primitive when dealing with a potentially high number of connected endpoints, albeit being only supported on Linux. A few other options we might want to support may be:
The last option is probably the most popular and portable, however it suffers from possible scalability drawbacks with several endpoints, due to the need for the client to go through all the file descriptors in the pool, in order to find out which one changed state. On the other hand, a (p)poll() based loop might be more portable, albeit we should check whether we loose anything w.r.t. epoll().
This choice might be available through an option like