首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
在websocket进程中 使用timer::tick 出现定时器自我销毁情况
目前场景是 我在websocket进程中 同时使用 websocket和http 事件 我在websocket onOpen事件中加入了一个timer::tick定时器事件进行点对点广播服务 但是HTTP服务中出现大量并发的情况下 timer::tick事件会出现自我销毁
发布于6年前 · 5 次浏览 · 来自
提问
iyourway
目前场景是 我在websocket进程中 同时使用 websocket和http 事件 我在websocket onOpen事件中加入了一个timer::tick定时器事件进行点对点广播服务 但是HTTP服务中出现大量并发的情况下 timer::tick事件会出现自我销毁
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2020-03-15
郭新华
没懂,`onopen`里面定时器和http大并发有啥联系?你还是贴代码吧
赞
1
回复
2020-03-15
iyourway
刚又测试了下 如果websocket连接数过多 timer::tick事件也会消失
赞
0
回复
2020-03-15
Rango
回复
iyourway
Worker 进程重启了吧?
赞
0
回复
2020-03-15
iyourway
回复
Rango
work进程不存在重启的情况的 因为websocket链接都是在的 通信无断开
赞
0
回复
2020-03-15
郭新华
回复
iyourway
[PROCESS](https://wiki.swoole.com/#/server/init?id=swoole_process)模式是和主进程建立连接的,worker挂了连接也在。
赞
0
回复
2020-03-15
iyourway
```php $this->webSocketServer->on('open', function (\Swoole\WebSocket\Server $server, $request) { //客户端标识码 $request->fd; $requestUri = $request->server['request_uri']; $routeData = new Route(); $cache = new Cache(); try { $cache::coreSet('fd' . $request->fd, $requestUri); $result = $routeData->isSetRoute('websocket', $requestUri, $request, $server, 'onOpen'); } catch (\Throwable $exception) { if ($this->Config['http_debug'] == false) { file_put_contents( $this->Config['websocket_logFile'], $exception->getMessage() . PHP_EOL, FILE_APPEND); $result['msg'] = '系统出错'; } else { $result = $exception->getMessage(); } } if ($result['code'] == 200) { $server->push($request->fd, json_encode($result)); $timerId = \Swoole\Timer::tick(1000, function () use ($request) { $this->timerCheck($request); }); $cache::coreSet('timer' . $request->fd, $timerId); } else { $this->webSocketCloseFd($request->fd, $result['msg']); } }); ``` 如上逻辑 如果并发量较大的情况 timer::tick事件会消失
赞
0
回复
2020-03-15
Twosee
这点信息看不出什么
赞
0
回复
2020-03-15
iyourway
回复
Twosee
没有任何错误日志输出 所以很奇怪 tick事件莫名其妙消失了
赞
0
回复
2020-03-15
Twosee
查看swoole的log_file, 看是否有错误提示
赞
0
回复