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

在客户端使用fiber时如何同时处理一问一答和服务器主动通知这两种流程 #271

Open
wangyongxiao opened this issue Apr 26, 2022 · 1 comment

Comments

@wangyongxiao
Copy link

我们在写客户端是通常是一问一答的方式。客户端发送一个请求,服务端响应该请求,这个流程在给出的示例里已有展示。

同时我们还经常面对这样一个问题,就是服务端主动发送信息给客户端,比如订阅的模式,服务端会主动发送客户端感兴趣的消息给客户端。

当这两种方式在同一个连接上时,该如何使用fiber呢,我没有想出一个好的方式来使用fiber,能提供一些思路吗?

@zhengshuxin
Copy link
Member

服务端针对每一个客户端可以创建两个协程,一个读协程,一个写协程,读协程负责阻塞式从客户端读数据,写协程负责向客户端写数据,写协程维护一个发送队列(其它协程往里面放数据)并从队列中阻塞式读数据,然后再将数据发给客户端,可以参考例子:lib_fiber/samples/chat/server/main.cpp

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