From d460180374d483143ea6e3fa2de66d7cc6e26838 Mon Sep 17 00:00:00 2001 From: luzhisheng Date: Mon, 22 Aug 2022 11:39:51 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E8=AF=95websocket.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- facebook私信/main.py | 0 facebook私信/readme1.md | 19 +++++++++++++++++++ facebook私信/私信.py | 11 +++++++++++ img/107.png | Bin 0 -> 25575 bytes 4 files changed, 30 insertions(+) create mode 100644 facebook私信/main.py create mode 100644 facebook私信/readme1.md create mode 100644 facebook私信/私信.py create mode 100644 img/107.png diff --git a/facebook私信/main.py b/facebook私信/main.py new file mode 100644 index 0000000..e69de29 diff --git a/facebook私信/readme1.md b/facebook私信/readme1.md new file mode 100644 index 0000000..b9f40f5 --- /dev/null +++ b/facebook私信/readme1.md @@ -0,0 +1,19 @@ +fb测试地址 + + https://www.facebook.com/profile.php?id=100055837744229 + +![debugger](../img/107.png) + +打开f12,刷新页面,发现fb存在 `pending` 连接。 + +以下是 WebSocket 对象的相关事件。 + + open Socket.onopen 连接建立时触发 + message Socket.onmessage 客户端接收服务端数据时触发 + error Socket.onerror 通信发生错误时触发 + close Socket.onclose 连接关闭时触发 + Socket.send() 使用连接发送数据 + Socket.close() 关闭连接 + +先对 `Socket.send()` 打断点,但是发现存在很多位置,那如果快速找到 `Socket.send()` 发送的位置,`hook` `send()` 方法,直接快速 + diff --git a/facebook私信/私信.py b/facebook私信/私信.py new file mode 100644 index 0000000..422aeef --- /dev/null +++ b/facebook私信/私信.py @@ -0,0 +1,11 @@ +import asyncio +import websockets + + +async def echo(websocket, path): + async for message in websocket: + message = "我收到了你的消息: {}".format(message) + await websocket.send(message) + +asyncio.get_event_loop().run_until_complete(websockets.serve(echo, 'localhost', 8765)) +asyncio.get_event_loop().run_forever() diff --git a/img/107.png b/img/107.png new file mode 100644 index 0000000000000000000000000000000000000000..a2310e086cc75fbc124c32dfd57a13d009d789c0 GIT binary patch literal 25575 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
petd^-`flID89R+|GuL&3b7t7b4 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 B;z9rb literal 0 HcmV?d00001