作者gn00618777 (非常念旧)
看板Python
标题[问题] websocket + Flask + python
时间Wed Apr 8 21:44:42 2015
我用 flask 写了一个 UI,关於 serial port 的接收,安装了 pserial,大致这样
@app.route("/OOOOXXXXX")
def OOOOXXX():
import serial
port = serial.Serial("/dev/ttyO2", baudrate=115200, timeout=3.0)
while True:
data=port.read(9999)
if data>0 :
templateData={
'result' : data
}
break
return render_template("XXX.html",**templateData)
XXX.html 就是给客户端看的介面,然後我这个XXX.html里面有一个自动向 host 端
要资料的 submit,一直进来这个 OOOOXXX function 去读取传入 /dev/ttyO2的资料,但
这样从客户端那边去看,网页会一直显示出连线中,然後我从putty serial port传入的
讯息会有点延迟出现在 XXX.html上,感觉是个很粗糙的作品。之前有查过 websocket
这方面的讯息。参考网址如下
https://kheresy.wordpress.com/2013/04/02/html5-websocket-client/
他用意是使用 html 页面内加上一些js,连线到 server ,server再 echo回来到html
但我突然想到,如果我要进来 OOOOXXX function 中,我仍然要在 XXX.html页面
执行 js 让它一直向 host 要资料,也就是他必须submit然後进入到 OOOOXXX function
中执行 pserial 的一些程式,我还是要考虑要怎样把接收到的资料丢到 XXX.html
这样不就无法跟 websocket 漂亮的结合了? 结果还是会老样子。 不知道有啥建议, 谢谢。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.136.158.141
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1428500687.A.479.html
1F:推 mars90226: 你的server端要分成html response跟json response 04/08 22:20
2F:→ mars90226: 不对...websocket的话,你server端也会有类似client 04/08 22:21
3F:→ mars90226: 端websocket的code,就是onXXX之类的handler 04/08 22:22
4F:→ mars90226: 你在server端那边建好连结以後就可以不断送讯息 04/08 22:23
5F:→ gn00618777: XD 不太懂。意思是说我後端也要有个 websocket server 04/08 23:05
6F:→ gn00618777: 吗? 然後XXX.html(有包含 websocket)和 host 端的 04/08 23:08
7F:→ gn00618777: websocket code 做连结? 04/08 23:08
8F:→ gn00618777: 总结一下,就是XXX.html(有包含websocket client) 04/08 23:10
9F:→ gn00618777: 然後 host 也有个 websocket,但问题是在python中 04/08 23:10
10F:→ gn00618777: 我要怎把资料丢到这个websocket?,websocket他仍然 04/08 23:11
11F:→ gn00618777: 写在html中,我不知道怎在OOOOXXX function把资料 04/08 23:11
12F:→ gn00618777: 送到 websocket 好让XXX.html 去读取资料 04/08 23:12
13F:→ gn00618777: 这样我还是只有想到 templateData 的方法用{{}}把值 04/08 23:13
14F:→ gn00618777: 丢到 websocket server 04/08 23:13
16F:→ mars90226: 这篇他虽然不是用websocket,不过用了SocketIO 04/09 00:55
17F:→ mars90226: SocketIO很类似websocket,不过有做额外的fallback 04/09 00:57
18F:→ mars90226: 如果你有写过Ajax的话,这概念其实挺类似,只是server 04/09 00:58
19F:→ mars90226: 变成websocket的server 04/09 00:58
20F:→ gn00618777: 太神拉,怎找到这种东西,我假日好好来研究^^,谢谢分 04/09 09:25
21F:→ gn00618777: 享 04/09 09:25