鍍金池/ 問答/Java  Python  Linux  網(wǎng)絡(luò)安全/ 關(guān)于flask提供web服務(wù)同時單獨進(jìn)行socket鏈接的問題!

關(guān)于flask提供web服務(wù)同時單獨進(jìn)行socket鏈接的問題!

python菜鳥向各位大佬問好!請教大佬問題!

我需要實現(xiàn)的功能

1.使用flask框架,提供web服務(wù),就是簡單的幾個按鍵,然后有一些指示狀態(tài)!通過瀏覽器訪問,可以查看狀態(tài),登陸后可以更改狀態(tài)(比如按鍵控制燈的亮滅)
2.點擊按鍵后,需要通過socket,TCP連接與下位機通信,
3.下位機是一塊STM32為主控,外加一些外設(shè),主要通信設(shè)備是通過通信模塊進(jìn)行TCP或UDP通信,不支持http協(xié)議
4.總結(jié):就是通過web網(wǎng)頁進(jìn)行與特定ip進(jìn)行tcp通信.

我目前遇到的問題

1.如何通過點擊web界面按鍵,向特定ip發(fā)送數(shù)據(jù)
2.如何接受特定ip數(shù)據(jù)
3.如何在運行flask服務(wù)的同時,在單獨開一個端口單獨提供socket服務(wù),使用TCP連接(目前只需要與一臺下位機通信)

我期望的結(jié)果

1.大佬們有沒有相關(guān)資料參考(比如flask-socketio)的資料,demo
2.大佬們有沒有更好的實現(xiàn)方案?(不用falsk,使用python WSGI接口直接手?jǐn)]?)
3.懇求大佬指點

回答
編輯回答
遲月

1、這是flask-socketio 的相關(guān)資料,希望你能夠喜歡 a:http://www.os373.cn/article/99,b:http://flask-socketio.readthedocs.io/en/latest/

2、 關(guān)于如何接受特定 IP 的信息,建議你的系統(tǒng)為 linux ,然后用 os 模塊直接調(diào)用 linux 系統(tǒng)的 socekt 通訊機制。
3、flask-socketio 本身就是集成在 flask 項目里,不需要再重新啟動一個進(jìn)程。

2018年1月23日 10:10
編輯回答
青裙

hello,請問你的問題解決了么?我現(xiàn)在也遇到了和你一樣的問題,(flask框架,提供web服務(wù),提供了接口,接收amazon發(fā)來的數(shù)據(jù),想知道有那種方式可以發(fā)送給下位機,我想到的就是建立socket,但是嘗試建立tcp server時失敗了(總是提示socket已占用),想了解想你這邊有好的解決方案了么?

2018年8月23日 06:26
編輯回答
有你在

可以考慮使用MQTT+JSON方案,這樣不但可以在局域網(wǎng)跑,也可以在公網(wǎng)上跑了。

STM32運行MQTT客戶端,連接到MQTT Broker,Web服務(wù)器則通過MQTT Broker HTTP API監(jiān)控下位機,或者弄一個MQTT Client收發(fā)命令也可以。

2017年10月5日 14:59