神奇的WebSocket
2017-12-03 本文已影响0人
Hystrix_Hu
之前应用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界面,里面是客户端和服务端的数据交互。