小扫车行驶过程中画面在浏览器中显示
大概的过程是如下这样:
首先,车辆行驶过程中,实时位置以及通过两个摄像头采集到的视频数据会传输到服务器端。然后,服务器端通过websocket协议与浏览器端进行通信,即在浏览器页面上显示状态。
采用的技术:
一、使用Flask-Socketio进行websocket通信
Flask-Socketio是Socketio的Flask插件,常用API和Socket.io非常类似,基于异步处理各种事件,可以选择使用的异步服务有:eventlet、gevent和Flask自带的Werkzeug。
1.让服务器主动发送数据给客户端
不需要客户端请求,只需一次握手即可创建永久的连接,允许双向传输。
2.具体流程
- 初始化:
socketio = SocketIO(app)
- 监听事件:
socketio.on
- 发送消息:发送消息使用send()或是emit(),对于未命名的事件使用send(),已经命名的事件用emit()。
- Namespace:允许客户端与服务器通过同一个socket建立多个连接。如果不指定则使用默认namespce。
- Room:如果一个事件指定了room,那么只有处在同一个room内的连接才能收到该事件。每一个连接都默认属于名为request.sid的房间。
二、绘制闪烁的小圆点
1.先将canvas的图像缓存到临时的canvas中
2.清除主canvas上的图像
3.在canvas上画新圆
4.新圆画完后,再把临时canvas图像绘制回主canvas中
三、python socket编程(传输字符、文件、图片)
1.客户端
- 创建 socket
- 连接到远程服务器
- 发送数据
- 接收数据
- 关闭 socket
2.服务器端
- 打开 socket
- 绑定到特定的地址以及端口上
- 监听连接
- 建立连接
- 接收/发送数据
参考文献: