我正在使用烧瓶建立一个网站,我希望对客户端进行推送。我关注 了 real-time-events-python并且能够创建网站。
我注意到的一件事是,当访问 Javascript 控制台时,每 500 毫秒有一个 GET,所以我想知道 javascript 的 EventSource 是否真的定期向服务器发送一个 GET 以查看是否有任何更新,导致它是一个忙碌的等待。
有关信息,我正在使用 Flask(python 框架)来开发网站并使用 chrome 来访问它。
我正在使用烧瓶建立一个网站,我希望对客户端进行推送。我关注 了 real-time-events-python并且能够创建网站。
我注意到的一件事是,当访问 Javascript 控制台时,每 500 毫秒有一个 GET,所以我想知道 javascript 的 EventSource 是否真的定期向服务器发送一个 GET 以查看是否有任何更新,导致它是一个忙碌的等待。
有关信息,我正在使用 Flask(python 框架)来开发网站并使用 chrome 来访问它。
根据您提供的链接,是的,浏览器发送 GET 作为服务器发送事件的实现:
服务器发送事件的实际协议非常简单。客户端将打开到服务器的标准连接并发出 GET 请求。它期望服务器保持打开套接字并通过在它们前面加上 data: 并以两个换行符终止来发送新事件。
因此,在服务器端,连接应该保持打开状态,而数据仍在通过它流式传输。请记住,服务器发送的事件允许自动重新连接,所以如果您遇到很多重新连接(我想这是所有这些都得到的,除非您的客户端代码没有正确编写),您应该检查以使确保您的服务器端没有关闭连接,这会导致浏览器重新打开连接。
至于“忙等”,如果我理解正确的话,你不必担心这个。这是由浏览器处理的,因此您的代码在等待时不会阻塞。