[问题] websocket + Flask + python

楼主: gn00618777 (非常念旧)   2015-04-08 21:44:42
我用 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 漂亮的结合了? 结果还是会老样子。 不知道有啥建议, 谢谢。
作者: mars90226 (火星人)   2015-04-08 22:20:00
你的server端要分成html response跟json response不对...websocket的话,你server端也会有类似client端websocket的code,就是onXXX之类的handler你在server端那边建好连结以后就可以不断送讯息
楼主: gn00618777 (非常念旧)   2015-04-08 23:05:00
XD 不太懂。意思是说我后端也要有个 websocket server吗? 然后XXX.html(有包含 websocket)和 host 端的websocket code 做连结?总结一下,就是XXX.html(有包含websocket client)然后 host 也有个 websocket,但问题是在python中我要怎把资料丢到这个websocket?,websocket他仍然写在html中,我不知道怎在OOOOXXX function把资料送到 websocket 好让XXX.html 去读取资料这样我还是只有想到 templateData 的方法用{{}}把值丢到 websocket server
作者: mars90226 (火星人)   2015-04-09 00:55:00
http://tinyurl.com/oyn2fxr 看看这篇的范例应该很好懂这篇他虽然不是用websocket,不过用了SocketIOSocketIO很类似websocket,不过有做额外的fallback如果你有写过Ajax的话,这概念其实挺类似,只是server变成websocket的server
楼主: gn00618777 (非常念旧)   2015-04-09 09:25:00
太神拉,怎找到这种东西,我假日好好来研究^^,谢谢分享

Links booklink

Contact Us: admin [ a t ] ucptt.com