podDetail.showCopyMsg=false;
podDetail.detailData="";
podDetail.detailDataOptions={
modalWidth:'850',
display:false,
title:'详细信息',
modalMask:true,
back:false
}
var socket,term=null;
podDetail.showLoginContainer=function(row){
var namespace=podDetail.namespace;
var podName=podDetail.podName;
var container=row.name;
//$("shellName").text(container);
if(term){
term.destroy();//初始化时关闭
}
return podService.getToken(namespace,podName).then(function(tokenData){
if(!tokenData){
return false;
}
var apiKey=keyData.apikey;
var signature=keyData.signature;
var sessionId=keyData.sessionId;
var ip=keyData.ip;
var domain=keyData.domain?keyData.domain:document.domain;
if(window.document.location.protocol=='http:'){
var url="ws://"+ip+"/api/v1/caas/namespaces/"+namespace+'/pods'+podName+"/exec?container="+container+"&sessionId="+sessionId+"&token="+token+"&apikey="+apikey+"&signature="+signature;
scoket = new WebSocket(url,"base64.channel.k8s.io");
}else{
var url="wss://"+domain+"/api/v1/caas/namespaces/"+namespace+'/pods'+podName+"/exec?container="+container+"&sessionId="+sessionId+"&token="+token+"&apikey="+apikey+"&signature="+signature;
scoket = new WebSocket(url,"base64.channel.k8s.io");
}
scoket.οnerrοr=function(e){
if(term){
term.destroy();//屏幕关闭
}
$("#shellWindow").css("display","none");
$scope.alert('连接失败');
};
scoket.onopen=function(open){
$("#shellWindow").css("display","block");
term=new Termial({
row:30,
useStyle:true,
screenKeys:true,
cursorBlink:true,
})
term.open(document.getElementById("shellConsole"));
term.on('data',function(data){
socket.send('0'+btoa(data));
});
socket.onmessage=function(message){
term.write(atob(message.data.slice(1)));
};
socket.onclose=function(){
term.write("Session terminated");
term.destroy();
$("#shellWindow").css("display","none");
}
}
podDetail.modalClose=function(){
socket.onclose();
}
})
}
webScoket的使用
最新推荐文章于 2024-07-30 21:53:02 发布