Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WebSocketServer无法从外部指定loop吗 #525

Open
YuriArthas opened this issue Apr 18, 2024 · 3 comments
Open

WebSocketServer无法从外部指定loop吗 #525

YuriArthas opened this issue Apr 18, 2024 · 3 comments

Comments

@YuriArthas
Copy link

看起来WebSocketServer/HttpServer/其他Server, 无法使用外部传入的loop
那么每创建N个服务, 都要创建N个新loop, 和N*M个线程

@ithewei
Copy link
Owner

ithewei commented Apr 18, 2024

HttpServer/WebSocketServer不支持传入外部loop,不过你可以在HttpServer的onWorkerStart回调里通过currentThreadEventLoop获取到当前线程的loop

@YuriArthas
Copy link
Author

也就是说, 如果想同时创建N个不同Server, 无论如何也不能只用一个loop以及只用一个thread
感觉这有些奇怪, 与libuv或者asio等库的思路相当不一样

这多少增加了开发者在线程安全方面的负担

@ithewei
Copy link
Owner

ithewei commented Apr 18, 2024

TcpServer类或者更底层的hloop是支持使用同一个loop的,你可以先创建WebSocketServer,然后在onWorkerStart里通过currentThreadEventLoop获取到当前线程的loop,然后再去使用这一个loop。
当然如果你想创建多个HttpServer/WebSocketServer使用一个loop,当前的封装是不行的,可以基于TcpServer去实现。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants