Laravel Rest api - 调用 SSE 或长轮询会阻止其他 HTTP 请求

问题描述 投票:0回答:1

我正在开发一个 Laravel + Vue SPA,其中包含用于票务系统(帮助台)的评论模块,旨在实现实时评论。我已经成功实现了带有 while 循环的 SSE。但是,当 SSE 打开时会出现问题,并且我尝试发出新的 HTTP 请求 - 由于活动的 SSE 连接,新请求似乎冻结并且永远不会完成。

如何避免这个问题?

比你

能够在SSE打开时请求HTTP

laravel vue.js real-time server-sent-events long-polling
1个回答
0
投票

我遇到了同样的问题,并找出了原因。

出现此问题的原因是 Laravel 使用单线程请求处理模型(在大多数配置中),这意味着当 SSE 端点正在运行并保持连接打开时,Laravel 无法处理其他传入请求。结果是请求被有效地“阻止”,直到 SSE 流程完成。

所以基本上你必须使用 Websocket ,因为它使用不同的协议 WS ,不会阻止 Laravel 使用的 HTTP 请求。

© www.soinside.com 2019 - 2024. All rights reserved.