![](/img/trans.png)
[英]Server-sent events with Python,Twisted and Flask: is this a correct approach for sleeping?
[英]HTML5 Server-sent events with Python cgi script on CGIHTTPServer
我正在测试HTML5服务器发送的事件,看看我是否可以在我的项目中使用它。 我试图按照http://www.html5rocks.com/en/tutorials/eventsource/basics和http://www.w3schools.com/html/html5_serversentevents.asp上的教程进行操作,但无法使其工作。
这是我的html(sse.html)和python cgi脚本(sse.py):
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
var source = new EventSource("/cgi-bin/sse.py");
source.onmessage = function(event) {
console.log(event.data);
};
</script>
</head>
<body>
Testing SSE!
</div>
</body>
</html>
sse.py如下:
import sys
import datetime
import time
sys.stdout.write('Content-type: text/event-stream\r\n\r\n')
while True:
now = datetime.datetime.now()
sys.stdout.write('data: %s\r\n\r\n' % now)
sys.stdout.flush()
time.sleep(5)
我将'sse.html'放入'c:\\ code \\ sse',将'sse.py'放入'c:\\ code \\ sse \\ cgi-bin'。 然后,我运行'python -m CGIHTTPServer'来启动开发Web服务器。
当我连接到' http:// localhost:8000 / sse.html '时,我没有看到控制台记录从服务器收到的数据。 相反,我看到一条消息说“资源被解释为脚本但是使用MIME类型text / plain传输:”chrome-extension://hgimnogjllphhhkhlmebbmlgjoejdpjl/bar.js“。”
有谁知道会出现什么问题?
谢谢!
我通过试验和错误修改了'sse.py',代码现在正在运行。 新的'sse.py'如下:
import sys
import datetime
import time
sys.stdout.write('Content-type: text/event-stream \r\n\r\n')
now = datetime.datetime.now()
sys.stdout.write('data: %s \r\n' % now)
sys.stdout.write('retry: 1000\r\n\r\n')
sys.stdout.flush()
我仍在试图弄清楚事情是如何运作的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.