关于flask提供web服务同时单独进行socket链接的问题!
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
可以考虑使用MQTT+JSON方案,这样不但可以在局域网跑,也可以在公网上跑了。
STM32运行MQTT客户端,连接到MQTT Broker,Web服务器则通过MQTT Broker HTTP API监控下位机,或者弄一个MQTT Client收发命令也可以。
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 项目里,不需要再重新启动一个进程。
hello,请问你的问题解决了么?我现在也遇到了和你一样的问题,(flask框架,提供web服务,提供了接口,接收amazon发来的数据,想知道有那种方式可以发送给下位机,我想到的就是建立socket,但是尝试建立tcp server时失败了(总是提示socket已占用),想了解想你这边有好的解决方案了么?
我这里给你提供一个解决思路:
problem:flask框架里面的不允许创建单独的socket,即便是监听的端口号不同,也会提示通信地址被占用。
solved:在硬盘建立cache文件,和下位机通信的socket单独创建python文件,负责将传感器接收到的数据存储在cache文件中,然后,flask的python文件只要开文件操作读取cache文件的数据就可以了,可以开定时器定时检查cache文件。这样做虽然性能不高,不适合处理大数据,但对于物联网的传感器数据的处理绰绰有余。