xterm EventSource Linux ssh

xterm EventSource

git地址:https://gitee.com/callens/xterm-event-source

介绍
项目来源

需实现一个在页面上连接linux的服务器的功能
项目中使用的是tomcat,非maven项目(每一个jar包都需要自己手动去下载,这样有个好处是可以知道这个jar包的作用)
浏览了一些git库上的一些项目,发现都是使用websocket,不符合当前项目的需求

项目设计

使用websocket需要进行协议升级,现不支持这种操作,本项目使用EventSource,并且现在Spring也对其进行了支持,
EventSource是在浏览器上发送标志为流的请求,以获得服务器返回的内容

项目逻辑

需保证浏览器支持EventSource这个功能,基本现在主流的浏览器都进行了支持,若浏览器的版本过低,需要对浏览器进行升级处理;
使用xterm获取用户在浏览器上输入的字符信息,这些字符信息不能直接传输到服务端,否则会发生不可预知的错误,需要使用Base64进行加密的方式进行发送,可以使用其他方式进行加密,只要在服务端进行对应的解密即可
当获得了用户输入的信息,使用EventSource把数据发送到服务端,服务端使用jsch进行连接到Linux服务器,获取到Channel,将数据进行Base64解密发送到OutputStream中
读取Channel返回的信息,使用read进行阻塞读取,使用定时任务启动读取操作,定时任务增加了一次重试操作,预防断网的情况
当页面获取到服务器返回的信息时,使用Base64进行解码,将解码之后的数据给xtrem,xterm会解析这些数据并展示出来

业务逻辑

使用用户ID进行区分唯一用户,如果当前的用户ID已经存在,则不能再进行登录使用,可以再重新换一个用户ID

软件架构

本项目使用的技术框架
日志框架:logback(版本1.2.3),slf4j(版本1.7.17)
Spring框架:SpringMVC,SpringWebflux,SpringCore(版本5.2.9)
Json框架:jackson(版本2.12.0)
Commons框架:commons-lang3(版本3.11)
Linux SSH连接框架:jsch(版本0.1.55),jzlib(版本1.1.3)
定时任务框架:quartz(版本2.3.2)
前端页面终端模拟器:xterm(版本4.9)
前端UI:layui(版本2.5.6),jquery(版本3.5.1)
前端编码:base64(版本3.14.1)
JDK版本 1.8
Tomcat版本 8.5

使用说明
  1. 访问 http://127.0.0.1:8080/xterm/index
    输入用户ID,IP地址,端口号,用户名,密码,校验通过之后,进入服务器Shell界面
  2. 登录成功则跳转到 http://127.0.0.1:8080/xterm/loginSSH
    这个页面有一个定时任务,在一秒钟之后进行自动尝试连接linux,连接成功之后我们会进入shell界面
其他

有大神有更好的相法,欢迎进行交流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值