WebSSH在线编程 所需工具介绍
Xterm.js
Xterm是一个X Window System上的终端模拟器,用来提供多个独立的SHELL输入输出。
简单说:
xterm 是一个使用 TypeScript 编写的前端终端组件,可以直接在浏览器中实现一个命令行终端应用。xterm是x窗口环境中对本地虚拟控制台的一个实现。
再直白点 可以在html页面下实现 终端(DOC命令行),并且发送WebSocket的指令给后台。
Paramiko SSH
ssh是一个协议,OpenSSH是其中一个开源实现,paramiko是Python的一个库,实现了SSHv2协议(底层使用cryptography)。
有了Paramiko以后,我们就可以在Python代码中直接使用SSH协议对远程服务器执行操作,而不是通过ssh命令对远程服务器进行操作。
由于paramiko属于第三方库,所以需要使用如下命令先行安装
组成
paramiko包含两个核心组件:SSHClient和SFTPClient。
SSHClient的作用类似于Linux的ssh命令,是对SSH会话的封装,该类封装了传输(Transport),通道(Channel)及SFTPClient建立的方法(open_sftp),通常用于执行远程命令。
SFTPClient的作用类似与Linux的sftp命令,是对SFTP客户端的封装,用以实现远程文件操作,如文件上传、下载、修改文件权限等操作。
Paramiko中的几个基础名词:
1、Channel:是一种类Socket,一种安全的SSH传输通道;
2、Transport:是一种加密的会话,使用时会同步创建了一个加密的Tunnels(通道),这个Tunnels叫做Channel;
3、Session:是client与Server保持连接的对象,用connect()/start_client()/start_server()开始会话。
参考原址
DWebSocket
django实现websocket大致上有两种方式,一种channels,一种是dwebsocket。channels依赖于redis,twisted等,相比之下使用dwebsocket要更为方便一些
安装
pip3 install dwebsocket配置
INSTALLED_APPS = [..........'dwebsocket', ]MIDDLEWARE_CLASSES = [............'dwebsocket.middleware.WebSocketMiddleware' # 为所有的URL提供websocket,如果只是单独的视图需要可以不选 ] WEBSOCKET_ACCEPT_ALL=True # 可以允许每一个单独的视图实用websockets使用
from dwebsocket.decorators import accept_websocket,require_websocket@accept_websocket @require_websocketaccept_websocket-—可以接受websocket请求和普通http请求
require_websocket----只接受websocket请求,拒绝普通http请求
举个例子
from django.shortcuts import render,HttpResponse# Create your views here. def login(request):return render(request,'login.html')from dwebsocket.decorators import accept_websocket @accept_websocket def path(request):if request.is_websocket():print(1)request.websocket.send('下载完成'.encode('utf-8'))dwebsocket的一些内置方法:
- request.is_websocket():判断请求是否是websocket方式,是返回true,否则返回false
- request.websocket: 当请求为websocket的时候,会在request中增加一个websocket属性,
- WebSocket.wait() 返回客户端发送的一条消息,没有收到消息则会导致阻塞
- WebSocket.read() 和wait一样可以接受返回的消息,只是这种是非阻塞的,没有消息返回None
- WebSocket.count_messages()返回消息的数量
- WebSocket.has_messages()返回是否有新的消息过来
- WebSocket.send(message)像客户端发送消息,message为byte类型
总结:Xterm获取并发送连接终端和命令的消息,dwebsocket进行接收websocket的消息,通过paramiko进行发送和反馈结果。消息的结果反馈也是一样,是个闭环。
案例及配置
WebSSH在线编程1
WebSSH在线编程2
总结
以上是生活随笔为你收集整理的WebSSH在线编程 所需工具介绍的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 【UE4】使用Composure插件在场
- 下一篇: ps4仁王服务器不稳定,原来《仁王》放弃