神奇的WebSocket

之前應用webSocket解決過一個服務端處理時間過長,導致服務斷開的問題,應用webSocket長鏈接的屬性規避了這個問題,對于WebSocket的應用比較粗淺。
今天,我在瀏覽某網頁的時候想要抓去網頁上的數據,頁面上的數據是不斷變化,正常分析是使用ajax從服務端獲取數據,再用js填充到頁面中,但是當使用調試工具去獲取rest接口時,發現沒有相關的url,這就很奇怪了。可能是搜索關鍵字不準確,導致萬能的度娘也沒給出準確的解答。機緣巧合下,讓我查到html5的WebSocket能實現相關的功能。

var webSocket = new WebSocket("wss://url/ws");
    webSocket.binaryType = "arraybuffer";
    webSocket.onopen = function(event){
        console.log(("webSocket connect at time: "+new Date()));
       //發送相關參數 
       webSocket.send("param"));
    }
   //接收信息
    webSocket.onmessage = function(event){
        var raw_data = event.data;
        //to do 
    }

    webSocket.onclose = function(){
        console.log("webSocket connect is closed");
        console.log(arguments);
    }
    webSocket.onerror = function(){
        console.log("error");
        console.log(arguments);
    }

對于像我這種對前端一知半解的開發來說,WebSocket還有一種防爬蟲的功效。通過chrome network頁面中的ws選項可以獲取到相關數據,只會有一條記錄,點開后會有一個data界面,里面是客戶端和服務端的數據交互。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容