
websocket
文章平均质量分 76
cdcdhj
这个作者很懒,什么都没留下…
展开
-
nodejs用ws模块反向代理socks5数据,即用ws写服务端和客户端及加密
首先思路是客户端发送socks5请求数据——>服务端解密并解析socks5数据是否为真,解析出Host和port,并用net.socket访问目标网站,目标网站返回数据,服务端再用ws发送返回数据给客户端。) 捕获请求,并通过 targetSocket.write(data) 将请求转发给 baidu.com。) 捕获数据,并通过 targetSocket.write(data) 将数据转发给目标服务器。) 捕获数据,并通过 ws.send(data) 将数据转发给客户端。原创 2025-02-26 22:22:50 · 843 阅读 · 0 评论 -
websocket服务端对客户的数据的FIN,mask,大端序payload数据复制以及解码,WS写浏览器端和cmd客户端模拟掩码发送文本、二进制、ping的方法
如果 self._processBuffer() 返回 false,表示当前缓冲区中的数据不足以解析一个完整的帧,循环会结束,等待更多数据。self._processBuffer() 是一个方法,用于从 self.buffer 中解析出完整的 WebSocket 帧。如果 self._processBuffer() 返回 true,表示成功解析了一个完整的帧,并可以继续解析下一个帧。如果添加了额外的逻辑,确保代码结构清晰,避免将 self._processBuffer() 的逻辑与其它逻辑混在一起。原创 2025-02-19 22:33:24 · 687 阅读 · 0 评论 -
模拟一个 WebSocket 数据帧,使用 masked() 函数对数据进行掩码处理,然后将掩码后的数据传递给 processBuf() 函数,以验证它是否正确解析和解码数据。
/理解了上面的创建FIN,MASK和数据的关系,我们就可以着手模拟创建一个 WebSocket 数据帧,包含掩码和掩码后的数据。createWebSocketFrame() 函数:用于模拟创建一个 WebSocket 数据帧,包含掩码和掩码后的数据。//最后是掩码函数和解码函数,就不多做介绍,可以搜我的文章有掩码和解码的具体过程。processBuffer() 函数会解析数据帧并输出解码后的数据。unmask() 函数:用于对掩码后的数据进行解掩码处理。//解码processBuffer()函数。原创 2025-02-16 23:08:56 · 210 阅读 · 0 评论 -
websocket服务器端对于websocket协议中FIN 位、操作码、Mask 位、长度字段、Payload 复制数据到 Buffer 中的测试
例如,当长度为65536(0x00010000),用writeUInt32BE(0,2)和writeUInt32BE(length,6),那么第2到5字节是0,第6到9字节是0x00010000,这样整个长度是0x0000000000010000,即65536,是正确的。需要注意的是,对于超过32位的情况,代码可能存在错误。测试长度超过65535的情况,这时候应使用八个字节的长度,并且前四个字节可能为0(因为JavaScript的Buffer最大长度可能受限制,但假设这里处理的是大端序的64位长度)。原创 2025-02-15 02:49:25 · 746 阅读 · 0 评论