今天在整理服务器列表的时候,想着可以不可以快速连接到服务器,之前也见过webssh ,google一番后发现了Ajaxterm,是用python开发的,下载下来试用一下还不错,速度还可以,Ajaxterm我大致看了下,没看的很明白,以后清楚了再补上,先看下图片
连接Ajaxterm
代码(前端js),先装一个插件
-
Ext.ns('Ext.ux.grid');
-
Ext.ux.grid.RightMenu = function(options) {
-
var currRecord = false;
-
var currRowIndex = false;
-
var currGrid = false;
-
var menuItems = Ext.each(options.items, function() {
-
var item = this;
-
this.handler = function() {
-
item.recHandler && item.recHandler(currRecord, currRowIndex, currGrid);
-
};
-
});
-
var menu = new Ext.menu.Menu({
-
items:options.items
-
});
-
this.init = function(grid) {
-
grid.addListener('rowcontextmenu', function(client, rowIndex, e) {
-
e.preventDefault();
-
if (rowIndex < 0) {
-
return;
-
}
-
currRowIndex = rowIndex;
-
currRecord = grid.getStore().getAt(rowIndex);
-
currGrid = grid;
-
menu.showAt(e.getXY());
-
});
-
};
-
};
具体参考
配置右键menu插件
-
var rightMenu = new Ext.ux.grid.RightMenu({
-
items:[{
-
text : '连接主机',
-
recHandler:function(record, rowIndex, grid) {
-
// var ip = record.get('ip'); //取得选择行ip地址
-
window.open(""); //这儿是ajaxterm主机的url,
-
//..传入参数为右键单击的record,行索引及所属的grid对象
-
}
-
}, {
-
text : '查看主机',
-
recHandler:function(record, rowIndex, grid) {
-
window.open(""+"zbxid="+record.get('zbxid'));
-
}
-
}]
-
})
最后配置grid中plugins,增加
rightMenu
总结:虽然达到了预期的效果,但是没有具体测试并发连接很多的情况,还有ajaxterm 是无时无刻都会产生post连接请求,我看了下源代码发现是个死循环sleep极短的时间,我猜测是为了保持跟主机的连接,确保主机是alive
阅读(6860) | 评论(1) | 转发(0) |