websocket封装

     var num=null;
     var ws=null;
       function websocket(url,data,callback){
       //data 为传送的数据,请传递字符串
       //url 为ws链接,格式为 ws://47.97.197.74/iot_admin
           function reconnect(url) {
            var timer = setTimeout(function () {              
                if (ws.readyState == 2 || ws.readyState == 3) {
                    console.log("readyState"+ws.readyState);
                    createwebSocket();
                } else if (ws.readyState == 1) {
                    clearTimeout(timer);
                }
            }, 5000);

        }
        createwebSocket();
        function createwebSocket(){
            console.log("创建对象");
            ws=new WebSocket(url);
            runwebsocket();
        };
    
        function runwebsocket(){
               ws.onopen=function(){
                   console.log("连接已打开");
                   ws.send(data);
            };
               ws.onmessage=function(evt){
                   var result={
                       status:0,
                       msg:"ok",
                       data:evt.data
                   }
                   // console.log("type"+typeof(evt.data));
                callback(result);       
               };
               ws.onclose=function(e){
                   console.log("websocket连接关闭啦");
                   var result={
                       status:1,
                       msg:"close",
                       data:e.code
                   }               
                   callback(result);
                   reconnect(url);
               };
               ws.onerror=function(e){
                   console.log("websocket发生错误");
                   var result={
                       status:1,
                       msg:"error",
                       data:e.code
                   }           
                   callback(result);
               }
           }

     };
     function sendData(data){
         ws.send(data);
     }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值