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属于第三方库,所以需要使用如下命令先行安装

pip3 install 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_websocket

accept_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在线编程 所需工具介绍相关推荐

  1. 5个在线制作APP开发工具介绍和APP公司酷站欣赏

    不会编程,自己也能制作出高质量的受欢迎的App.如果你也想免费给自己公司或者产品开发App客户端的,也一样可以参考下面5个在线制作高质量的APP开发工具. 或者我们也可以欣赏下 这5个App公司的运营 ...

  2. 10个在线Web设计开发工具介绍

    1. 在线文本生成器 BlindTextGenerator:对设计师来说,这是一个简单又好用的文本生成小工具.内含许多种字体,可设置字符的大小,数量,样式,段落的数量及对齐方式等,还可以很方便且精确地 ...

  3. xiaomi 小米 红米redmi 秒解锁BL锁,不用等,在线秒解锁BL工具介绍

    xiaomi 小米 红米redmi 秒解锁BL锁,不用等,在线秒解锁BL Xlaomi Redmi K40 Gaming Xlaomt Poco F3 GT Gaming Xaoml Poco X3 ...

  4. web字体格式及几种在线格式转换工具介绍

    目前,文字信息仍是网站最主要的内容,随着CSS3技术的不断成熟,Web字体逐渐成为话题,这项让未来Web更加丰富多彩的技术拥有多种实现方案,其中之一是通过@font-face属性在网页中嵌入自定义字体 ...

  5. 软件包管理 之 软件在线升级更新yum 图形工具介绍

    作者:北南南北 来自:LinuxSir.Org 提要:yum 是Fedora/Redhat 软件包管理工具,包括文本命令行模式和图形模式:图形模式的yum也是基于文本模式的:目前yum图形前端程序主要 ...

  6. python 在线编辑_科技学堂Python在线编程工具发布,欢迎各位老师一起来测评!...

    原标题:科技学堂Python在线编程工具发布,欢迎各位老师一起来测评! 作为一家面向科技工作者和爱好者的在线教育的平台,科技学堂一直致力于为大家提供更多.更丰富的科技教育资源. 2019年,我们上线了 ...

  7. Java 在线编程编译工具上线,直接运行Java代码

    前言 大家好,我是小哈~ 周末没出去浪,花了点时间,在我的个人网站上线了一款小工具.啥工具呢?一款可以在线编译 Java 代码并运行输出结果的小工具. 大家都知道,甲骨文刷 Java 版本号非常积极, ...

  8. python编程工具-7款Python开发工具介绍,你最中意哪一款

    工欲善其事必先利其器,有一款好用上手的Python编辑器能够大大提高码代码的效率,而且所带来的提升不是从 1 到 1.1 倍速,是从 1 到 10 倍速.所以行哥这里来推荐几个常用的Python开发工 ...

  9. IT计算机前后端相关专业——20个常用的学习教程及在线编程工具

    文章目录: 一:教程相关 1.菜鸟教程:https://www.runoob.com/ 2.前站导航:http://www.frontendjs.com/ 3.C语言技术网:https://www.f ...

最新文章

  1. leetcode解题报告:188 Best Time to Buy and Sell Stock IV
  2. Java基础语法纯小白入门
  3. 2019区块链行业指南
  4. mysql 白皮书_mysql企业版 《 MySQL企业版中文白皮书 》.cn.doc
  5. matlab 低秩矩阵分解,低秩分解的matlab代码看不懂,分解的两个矩阵在哪呀??...
  6. QT中动态库和静态库使用
  7. 【C语言】创建一个函数,并调用比较三个数的大小
  8. python抓取贴吧_python抓取百度贴吧-校花吧,网页图片
  9. dede列表分页php,织梦用dede:sql实现列表页分页教程
  10. 20CM网线你会拿来干什么??
  11. 如何在iPhone、iPad和Mac上查看照片的EXIF数据?
  12. 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_24-CMS前端页面查询开发-使用钩子方法实现立即查询...
  13. Luogu1939 【模板】矩阵加速(数列)
  14. Hr人力资源管理系统怎样给企业创造价值
  15. 有一个测试微信删除软件叫wool,如果出现这三种情况,便可以删除这些微信好友,此操作适用所有人...
  16. MTC160-16-ASEMI可控硅模块MTC160-16
  17. 小程序以及h5引入阿里图标不显示最简单解决方案
  18. 微信公众号编辑文章发布时,弹出,图文消息中含有敏感词
  19. mysql-8.0.30-winx64
  20. python怎么求圆柱表面积半径和高由键盘输入_Java圆柱体表面积和体积计算代码实例...

热门文章

  1. 《SysML精粹》学习记录--第七章
  2. 阿里云-云开发平台存储篇——给应用接上后端存储能力
  3. Software Architecture Pattern(Mark Richards)笔记
  4. NLP标注工具:【免费:doccano、标注精灵、brat、YEDDA、DeepDive、rasa-nlu-trainer】【收费:Prodigy】
  5. python自动爬取更新电影网站_Python爬虫之—微信实时爬取电影咨询
  6. sequelize-auto自动生成model...
  7. LeetCode 413.等差数列的划分
  8. 开发小程序插件如何实现盈利?
  9. C# 强化系列文章四:匿名方法的使用
  10. DbVisualizer常见问题解答(ddl标签不存在)