webSocket wss 逆向

发布时间 2023-11-14 20:15:48作者: 守护式等待

1.WebSocket

在浏览器和服务器之间建立持久连接来交换数据的方法。数据可以作为“数据包”在两个方向上传递,而无需中断连接也无需额外的 HTTP 请求

2.简单使用

let socket = new WebSocket("wss://javascript.info/article/websocket/demo/hello");   // 创建WebSocket

socket.onopen = function(e) {    // 连接已建立
  alert("[open] Connection established");
  alert("Sending to server");
  socket.send("My name is John");
};

socket.onmessage = function(event) {  // 接收到数据函数    event客户端返回的数据
  alert(`[message] Data received from server: ${event.data}`);
};

socket.onclose = function(event) {  //  WebSocket 错误处理函数
  if (event.wasClean) {
    alert(`[close] Connection closed cleanly, code=${event.code} reason=${event.reason}`);
  } else {
    // 例如服务器进程被杀死或网络中断
    // 在这种情况下,event.code 通常为 1006
    alert('[close] Connection died');
  }
};

socket.onerror = function(error) {  // 连接已关闭
  alert(`[error] ${error.message}`);
};

socket.send(moreData())   // 给服务端发送消息   方法可以发送文本或二进制数据
//当我们收到数据时,文本总是以字符串形式呈现。而对于二进制数据,我们可以在 Blob 和 ArrayBuffer 格式之间进行选择

3.WebSocket特性

websocket  //不是v8引擎自带的,本身就是个关键词
var socket= new webSocket(url,[protocol] );  // 一定会有new webSocket
socket.readystate   //获取当前请求的状态
socket.onopen  //连接建立时触发 
socket.onmessage  //客户端接收服务端数据时触发   接收服务器数据
socket.send()  //使用连接发送数据   发服务器数据
	//1.搜索下断搜到很多
	//2.找到socket对象hook send方法直接快速
		//假设p是socket对象
		//TODo hook
		p.send_ = p.send;
		p.send = function(x){
		    debugger;
		    return p.send_(z);
		}