2013-02-20 60 views
2

我正在建造一个网站使用烧瓶,我希望做一个推客户端。我遵循real-time-events-python,我能够创建该网站。服务器发送的事件是“忙等待”吗?

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

有关信息,我使用Flask(python框架)开发网站和chrome来访问它。

Server Sent Events specification

+0

不,事件是异步的 - 没有繁忙的等待。轮询可能是不同的事情。 – Bergi 2013-02-20 19:40:39

+0

谢谢,我在代码中导致这个GET请求的错误。 – barroca 2013-02-20 20:11:51

回答

3

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

的服务器发送的事件的实际协议是很简单的。客户端 将打开到服务器的标准连接并发出GET请求。 它期望服务器保持打开套接字并通过 发送新事件以数据为前缀:并以两个换行符结尾。

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

至于“忙等待”,如果我正确理解你,你不需要担心这个。这是由浏览器处理的,所以你的代码在等待时不会阻塞。

+0

只有客户端第一次将GET发送到服务器。问题出在导致GET流的代码上。感谢你的回答。 – barroca 2013-02-20 20:13:06