最近在做OTDR光缆监测系统,后面需要websocket的通知功能,看了下官方文档,Django Channels 已经更新到3.0版本了。和2.0有一些不同。通过阅读文档,让我更加理解了这个Channels项目的强大之处。
前言:怎样优雅的运行Linux命令并实时的显示结果,就像Xshell一样呢?那就要属WebSSH了。基于Web的SSH有很多,基于Python的SSH也有很多,这些都是直接通信,中间没有额外管理。但是以Django为中转桥梁结合websocket和paramiko实现的,网上就很少了。下面是我结合网上参考后的实现图和原理讲解:
说明:深度学习3.0接近尾声时,项目多了一个迫切的需求,需要有一个WebSSH。许尚明提出了通过websocket连接Kubernetes Pod的数据流来实现WebSSH的功能。刚好我前面学习完websocket,网上也有很好的范例,就很快搞定了!记录下,温故而知新。
说明:WebSocket是一种在单个TCP连接上进行全双工通讯的协议。WebSocket允许服务端主动向客户端推送数据。在WebSocket协议中,客户端浏览器和服务器只需要完成一次握手就可以创建持久性的连接,并在浏览器和服务器之间进行双向的数据传输。