借助xterm.js、paramiko、Dwebsocket、SSH完成WebSSH在线编程

借助xterm.js、paramiko、Dwebsocket、SSH完成WebSSH在线编程

websocket:https://www.cnblogs.com/xiaonq/p/12238651.html

webssh:https://www.cnblogs.com/xiaonq/p/12243024.html

1.什么是WebSSH?

  • webssh 泛指一种技术可以在网页上实现一个 SSH 终端。
  • ssh终端:用来通过ssh协议,连接服务器进行管理
  • 运维开发方向:堡垒机登录、线上机器管理(因为运维人员不肯能24小时携带电脑)
  • 在线编程:提供一个编程环境

2.websocket(3w1h)

  • 什么是websocket
    • webSocket是一种在单个TCP连接上进行全双工通信的协议
    • 客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据
    • 浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输
  • websocket与http区别
    • http请求建立连接只能发送一次请求,不能有服务器端主动向客户端发送请求
    • websocket建立的长连接,一次连接,后续一直通信,这样节省资源,可以有客户端发送请求给服务器端
  • 远古时期解决方案就是轮询
    • 客户端以设定的时间间隔周期性地向服务端发送请求,频繁地查询是否有新的数据改动(浪费流量和资源)
  • webSocket应用场景?
    • 聊天软件:最著名的就是微信,QQ,这一类社交聊天的app
    • 弹幕:各种直播的弹幕窗口
    • 在线教育:可以视频聊天、即时聊天以及其与别人合作一起在网上讨论问题…
  • websocket原理
    • websocket首先借助http协议(通过在http头部设置属性,请求和服务器进行协议升级,升级协议为websocket的应用层协议)
    • 建立好和服务器之间的数据流,数据流之间底层还是依靠TCP协议;
    • websocket会接着使用这条建立好的数据流和服务器之间保持通信;
    • 由于复杂的网络环境,数据流可能会断开,在实际使用过程中,我们在onFailure或者onClosing回调方法中,实现重连
  • websocket实现心跳检测的思路
    • 通过setInterval定时任务每个3秒钟调用一次reconnect函数
    • reconnect会通过socket.readyState来判断这个websocket连接是否正常
    • 如果不正常就会触发定时连接,每4s钟重试一次,直到连接成功
    • 如果是网络断开的情况下,在指定的时间内服务器端并没有返回心跳响应消息,因此服务器端断开了。
    • 服务断开我们使用ws.close关闭连接,在一段时间后,可以通过 onclose事件监听到。

猜你喜欢

转载自www.cnblogs.com/jiaxinzhu/p/12354015.html