[問題] websocket + Flask + python

看板Python作者 (非常念舊)時間9年前 (2015/04/08 21:44), 編輯推噓2(2019)
留言21則, 2人參與, 最新討論串1/1
我用 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://www.ptt.cc/bbs/Python/M.1428500687.A.479.html

04/08 22:20, , 1F
你的server端要分成html response跟json response
04/08 22:20, 1F

04/08 22:21, , 2F
不對...websocket的話,你server端也會有類似client
04/08 22:21, 2F

04/08 22:22, , 3F
端websocket的code,就是onXXX之類的handler
04/08 22:22, 3F

04/08 22:23, , 4F
你在server端那邊建好連結以後就可以不斷送訊息
04/08 22:23, 4F

04/08 23:05, , 5F
XD 不太懂。意思是說我後端也要有個 websocket server
04/08 23:05, 5F

04/08 23:08, , 6F
嗎? 然後XXX.html(有包含 websocket)和 host 端的
04/08 23:08, 6F

04/08 23:08, , 7F
websocket code 做連結?
04/08 23:08, 7F

04/08 23:10, , 8F
總結一下,就是XXX.html(有包含websocket client)
04/08 23:10, 8F

04/08 23:10, , 9F
然後 host 也有個 websocket,但問題是在python中
04/08 23:10, 9F

04/08 23:11, , 10F
我要怎把資料丟到這個websocket?,websocket他仍然
04/08 23:11, 10F

04/08 23:11, , 11F
寫在html中,我不知道怎在OOOOXXX function把資料
04/08 23:11, 11F

04/08 23:12, , 12F
送到 websocket 好讓XXX.html 去讀取資料
04/08 23:12, 12F

04/08 23:13, , 13F
這樣我還是只有想到 templateData 的方法用{{}}把值
04/08 23:13, 13F

04/08 23:13, , 14F
丟到 websocket server
04/08 23:13, 14F

04/09 00:55, , 15F
http://tinyurl.com/oyn2fxr 看看這篇的範例應該很好懂
04/09 00:55, 15F

04/09 00:55, , 16F
這篇他雖然不是用websocket,不過用了SocketIO
04/09 00:55, 16F

04/09 00:57, , 17F
SocketIO很類似websocket,不過有做額外的fallback
04/09 00:57, 17F

04/09 00:58, , 18F
如果你有寫過Ajax的話,這概念其實挺類似,只是server
04/09 00:58, 18F

04/09 00:58, , 19F
變成websocket的server
04/09 00:58, 19F

04/09 09:25, , 20F
太神拉,怎找到這種東西,我假日好好來研究^^,謝謝分
04/09 09:25, 20F

04/09 09:25, , 21F
04/09 09:25, 21F
文章代碼(AID): #1L9J3FHv (Python)