webScoket的使用

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();
        }
    })
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值