javascript - 服务器发送的事件是否为 "Busy Wait"?

标签 javascript python flask server-sent-events

我正在使用 Flask 构建一个网站,我希望向客户端推送。我关注了real-time-events-python我能够创建该网站。

我注意到的一件事是,访问Javascript控制台时,每500ms就有一次GET,所以我想知道javascript的EventSource是否确实定期向服务器发送GET以查看是否有任何更新,导致其成为忙碌等待。

仅供引用,我使用 Flask(python 框架)来开发网站,并使用 chrome 来访问它。

Server Sent Events specification

最佳答案

根据the link you provided是的,浏览器发送 GET 作为服务器发送事件的实现:

The actual protocol for Server-Sent Events is very simple. The client will open a standard connection to the server and make a GET request. It expects the server to hold open the socket and send new events by prefixing them with data: and terminating with two newline characters.

因此,在服务器端,连接应该保持打开状态,而数据仍在通过它传输。请记住,服务器发送的事件允许自动重新连接,因此,如果您遇到大量重新连接(我想这就是所有这些重新连接,除非您的客户端代码编写不正确),您应该检查以确保确保您的服务器端没有关闭连接,这会导致浏览器重新打开连接。

至于“忙等待”,如果我理解正确的话,你不需要担心这个。这是由浏览器处理的,因此您的代码在等待某些内容时不会阻塞。

关于javascript - 服务器发送的事件是否为 "Busy Wait"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14987539/

相关文章:

javascript - 根据图像标题的搜索输入过滤图像

javascript - 当调用内部函数时 Firebug 崩溃

javascript - 如何制作下拉菜单以打开下拉菜单?

python - 在 for 循环中重复回答

python - 从 Python 列表中的每个元素中删除最后一个字符

mongodb - flask mongoengine 通过 uri 连接

javascript - 在 Safari 中加载源映射和调试?

python - 从日期时间 Pandas 中提取季节

python - 使用 ng-file-upload 上传时,Flask 服务器上的 Request.files 对象为空

python - oauth2回调时如何恢复flask.session对象