我正在开发一个 Laravel + Vue SPA,其中包含用于票务系统(帮助台)的评论模块,旨在实现实时评论。我已经成功实现了带有 while 循环的 SSE。但是,当 SSE 打开时会出现问题,并且我尝试发出新的 HTTP 请求 - 由于活动的 SSE 连接,新请求似乎冻结并且永远不会完成。
如何避免这个问题?
比你
能够在SSE打开时请求HTTP
我遇到了同样的问题,并找出了原因。
出现此问题的原因是 Laravel 使用单线程请求处理模型(在大多数配置中),这意味着当 SSE 端点正在运行并保持连接打开时,Laravel 无法处理其他传入请求。结果是请求被有效地“阻止”,直到 SSE 流程完成。
所以基本上你必须使用 Websocket ,因为它使用不同的协议 WS ,不会阻止 Laravel 使用的 HTTP 请求。