libhv
libhv copied to clipboard
WebSocketServer无法从外部指定loop吗
看起来WebSocketServer/HttpServer/其他Server, 无法使用外部传入的loop 那么每创建N个服务, 都要创建N个新loop, 和N*M个线程
HttpServer/WebSocketServer不支持传入外部loop,不过你可以在HttpServer的onWorkerStart回调里通过currentThreadEventLoop获取到当前线程的loop
也就是说, 如果想同时创建N个不同Server, 无论如何也不能只用一个loop以及只用一个thread 感觉这有些奇怪, 与libuv或者asio等库的思路相当不一样
这多少增加了开发者在线程安全方面的负担
TcpServer类或者更底层的hloop是支持使用同一个loop的,你可以先创建WebSocketServer,然后在onWorkerStart里通过currentThreadEventLoop获取到当前线程的loop,然后再去使用这一个loop。 当然如果你想创建多个HttpServer/WebSocketServer使用一个loop,当前的封装是不行的,可以基于TcpServer去实现。