关于flask提供web服务同时单独进行socket链接的问题!

发布于 2022-09-07 15:32:33 字数 524 浏览 40 评论 0

python菜鸟向各位大佬问好!请教大佬问题!

我需要实现的功能

1.使用flask框架,提供web服务,就是简单的几个按键,然后有一些指示状态!通过浏览器访问,可以查看状态,登陆后可以更改状态(比如按键控制灯的亮灭)
2.点击按键后,需要通过socket,TCP连接与下位机通信,
3.下位机是一块STM32为主控,外加一些外设,主要通信设备是通过通信模块进行TCP或UDP通信,不支持http协议
4.总结:就是通过web网页进行与特定ip进行tcp通信.

我目前遇到的问题

1.如何通过点击web界面按键,向特定ip发送数据
2.如何接受特定ip数据
3.如何在运行flask服务的同时,在单独开一个端口单独提供socket服务,使用TCP连接(目前只需要与一台下位机通信)

我期望的结果

1.大佬们有没有相关资料参考(比如flask-socketio)的资料,demo
2.大佬们有没有更好的实现方案?(不用falsk,使用python WSGI接口直接手撸?)
3.恳求大佬指点

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

蓦然回首 2022-09-14 15:32:33

可以考虑使用MQTT+JSON方案,这样不但可以在局域网跑,也可以在公网上跑了。

STM32运行MQTT客户端,连接到MQTT Broker,Web服务器则通过MQTT Broker HTTP API监控下位机,或者弄一个MQTT Client收发命令也可以。

深海蓝天 2022-09-14 15:32:33

1、这是flask-socketio 的相关资料,希望你能够喜欢 a:http://www.os373.cn/article/99,b:http://flask-socketio.readthedocs.io/en/latest/

2、 关于如何接受特定 IP 的信息,建议你的系统为 linux ,然后用 os 模块直接调用 linux 系统的 socekt 通讯机制。
3、flask-socketio 本身就是集成在 flask 项目里,不需要再重新启动一个进程。

月光色 2022-09-14 15:32:33

hello,请问你的问题解决了么?我现在也遇到了和你一样的问题,(flask框架,提供web服务,提供了接口,接收amazon发来的数据,想知道有那种方式可以发送给下位机,我想到的就是建立socket,但是尝试建立tcp server时失败了(总是提示socket已占用),想了解想你这边有好的解决方案了么?

陌生 2022-09-14 15:32:33

我这里给你提供一个解决思路:

problem:flask框架里面的不允许创建单独的socket,即便是监听的端口号不同,也会提示通信地址被占用。

solved:在硬盘建立cache文件,和下位机通信的socket单独创建python文件,负责将传感器接收到的数据存储在cache文件中,然后,flask的python文件只要开文件操作读取cache文件的数据就可以了,可以开定时器定时检查cache文件。这样做虽然性能不高,不适合处理大数据,但对于物联网的传感器数据的处理绰绰有余。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文