首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
onconnected 是如何触发的
最近在看这块的代码 ,主进程 accept了一个sock加入到了一个reactor线程 ,swServer_master_onAccept没有其他代码 ,work进程收到的管道事件是如何触发的。忘解答,麻烦了
发布于9年前 · 0 次浏览 · 来自
提问
李
李勃翰
最近在看这块的代码 ,主进程 accept了一个sock加入到了一个reactor线程 ,swServer_master_onAccept没有其他代码 ,work进程收到的管道事件是如何触发的。忘解答,麻烦了
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2017-05-17
侯
侯丽华
onAccept之后,然调用 swServer_connection_ready {{{ static sw_inline void swServer_connection_ready(swServer *serv, int fd, int reactor_id) { swDataHead connect_event; connect_event.type = SW_EVENT_CONNECT; connect_event.from_id = reactor_id; c
赞
0
回复
2017-05-17
d
ddsada
补充一下,SW_MODE_PROCESS模式下,我单步发现是onAccept后, reactor线程执行了 swReactorThread_onWrite,而swReactorThread_onWrite调用了swServer_connection_ready 现在问题来了,这个事件是如何触发的 因为accept后客户端又没有写数据
赞
0
回复
2017-05-18
q
qzuser
Master线程`Accept`后会设置`Reactor线程`的Epoll事件监听,如果设置了`onConnect`就会监听可写,未设置`onConnect`直接监听可读事件。 可写事件是立即触发的,Reactor线程就会通知到Worker进程。 [https://github.com/swoole/swoole-src/blob/master/src/network/Server.c#L174](https://github.com/swoole/swoole-src/blob/master/s
赞
0
回复
2017-05-18
熊
熊猫珍珠奶盖不要奥利奥
你回答地方就是困扰我的地方 poll accept一个socket,扔给Reactor线程,开始监听写, 客户端socket没有写任何数据,为何会触发Reactor线程的可写事件
赞
0
回复
2017-05-18
t
testvvv
你的理解有误,可写事件是指服务器可以向TCP客户端写数据,而不是值客户端向服务器写数据。
赞
0
回复
2017-05-18
j
jing
你上面回答 可写事件是立即触发的 这个是什么原理
赞
0
回复