web ssl开源软件ajaxterm代码分析笔记

(更新中)

最近要做一个web上的ssh小工具,可是头疼了好久,终于找到了一款开源的小工具。

 

前台使用javascript收集用户的输入,并每100ms向服务器发送一次请求来更新页面。

function init(): 本函数是客户端的初始化方法,

                     工作: 1. 页面的构造

                               2. 按键事件的处理(document.οnkeypress=keypress;      document.οnkeydοwn=keydown;)

                               3. 启动update的定时器(window.setTimeout(update,100);)

 

function keypress(ev):当用户按下某一个键时,获取健码值,并使用String.fromCharCode 把健码值转换成字符串类型。使用

                                     escape对所有的按键进行编码转换,供http请求使用,并保存到本地的一个数组中,并在页面刷新时把

                                     所有的按键都发送到服务器端。

 

function keydown(ev): 在ie浏览器中,比如pageup,pagedown,Home,End, 上,下, 左,右这样的控制键使用keypress

                                      是无法获取的,所以要在keydown中进行捕获,并调用keypress方法完成按键处理。

 

function update():这个可以说是客服端的核心方法了,基本上主要的操作都是在这个方法中完成的。

                              处理流程大体为:

                              1. 设置发送标志位为1

                              2. 当前按键缓存数组中是否有记录,如果有记录,不把所有的按键从数组中拿出来;如果没有就忽略。

                              3. 构造ajax请求,使用get方式,主要的参数有,s(标识当前使用的是哪一个console,随机生成的);w(console

                                  的宽度);h(console的高度); k(按键的序列)

                              4. 发送请求,并等待返回。

                              5. 如果返回中包含新的数据if(de.tagName=="pre") ,就使用Sarissa.updateContentFromNode 方法对返回

                                  的xml数据进行序列化,更新当前页面。并重新设置定时器,window.setTimeout(update,100);

                                  如果返回中没有新数据,就把定时器的时间延长,rmax*=2; 降低请求的频率,减小服务器的压力。

 

后台使用perl完成,建立一个http服务器,监听一个端口8022,当用户的请求是以u结尾的话,就会对请求进行截取,使用自己的python来完成。并把信息都返回给客户端。由浏览器完成显示功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值