-
-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Implementation of gnet Client #4
Comments
I am focusing on the |
How does it go? |
I plan to start it after a stable server version of |
有进展吗? |
暂时还没开始。 |
希望快点开展client的支持,实际应用中会需要多个服务器协同工作,这时候就需要有Server和Client,我在改造的时候也遇到了相同的问题 |
+1 |
1 similar comment
+1 |
@panjf2000 i am also really interested in the client implementation and it's accompanying performance improvements compared to standard net package. If you could provide some references/guidelines regarding client implementation, i can try and make a PR! |
@ALL
Maybe you can refer to the implementation of |
+1 for client for sure |
I wrote a basic TCP client implementation. Seems to be working so far. The basic idea was that a client works pretty much like a server except it doesn't have a listen address. So I pretty much just added a second set of methods for setting up the Client event loop under the Server object (now the name doesn't make sense). Then there is an additional registration step of TCP connections (rather than connections being registered from the listener socket on the server). So you can use the standard golang TCPConn to dial and get the file descriptor from it and then register it to start monitoring for events. This is more of a starting point if anyone is interested. EDIT... |
@lesismal I believe the standard golang TCP library uses events internally except it is serialized to a single goroutine from the API perspective. If you want to load test a server it's very nice to event/non-blocking IO client otherwise you'll quickly run out of memory for all the goroutines. If you want to test thousands or millions of client connections you're going to want to use non-blocking IO/events. |
Thanks @lesismal. I already ran my test using the my fork I mentioned above but I starred your repo for next time 😃 |
有规划了吗? |
The development of the client for The first stable version will be released within the next two months. |
期待client的发布,希望功能全面、性能强劲 |
I was wandering ,if Client will be released in September? |
Yes. |
请问,现在研发进展符合当初预期吗,9月底能否出个可交互版? |
目前计划还是这个月底发布 v0.1.0 版本 |
Will you release the gnet client in this month? |
Focus on this issue progress... |
Sorry for the delay, actually the code of the client has been done, but it's still not fully tested, I've been stuck in my daytime job lately. |
咨询下client release版本有发布预计日期吗? |
I've been stuck with the daytime job and other personal affairs for a really long time. Therefore, I can't make a guarantee for the release date of |
如果client还是用net.Dial的话,这就又让runtime去接管epoll了,runtime.netpoll的优先级又比较低,在P繁忙的情况下会有十几ms的延迟。 |
gnet leverages net.Dial() to get a reliable client socket and then duplicate its underlying fd by |
gnet的优势是利用底层网络特性,避免net库的沉重包袱,client为啥要用net.dial还是同步阻塞的呢?用系统调用级非阻塞connect, epoll托管连接状态,基于状态机驱动,比同步阻塞connect效率会高不少吧 |
hello,Client什么时候支持Windows环境呢? |
Fixes #4 Fixes panjf2000#143 Fixes panjf2000#248 Fixes panjf2000#282
Are there any plans to implement a client library?
The text was updated successfully, but these errors were encountered: