webman-framework
webman-framework copied to clipboard
增加对框架路由对长轮询响应的支持
原理
- 使用workerman自带的Timer对长轮询请求进行处理
- onMessage忽略来自LongPollingResponse的send处理
描述
- 增加了LongPollingResponse
- LongPollingResponse接收request对象参数及wait参数
- wait参数用于控制长轮询等待时长
- 修改了App.php onMessage、send部分
使用
- 控制器返回LongPollingResponse对象即可
public function test(Request $request): Response
{
return (new LongPollingResponse($request,200, [], '{"info": "this is long polling response. "}', 20));
}
优化
目前只是一个demo,实现简单的长轮询响应,后期可以对其功能性进行增加和优化; 可以对长轮询响应数量上限做限制或者超时时间做处理,当超过阈值时自动退化为正常请求响应;