在上一期中(图一),分析了抖音直播间的hook入口,那这一期将讲解如何将直播间的message获取到本地的websocket服务器上。
图一
原理:就是在浏览器中创建一个ws客户端,监听抖音runAllEvents,方法中的s.toObject语句,监听到这个message后,传到本地python服务器上,然后再对message进行二次处理。
| 弹幕信息 | 二次开发方向 |
| ①用户关注 ②用户点赞 ③用户进入直播间 ④用户发言 ⑤用户刷礼物 ⑥用户个人信息。 | ①弹幕游戏开发 ②直播舆论检测与分析 ③礼物榜单展示 ④智能弹幕语音 |
代码如下:
//浏览器客户端//创建者:秋恋猫工作室//创建时间:2022/8/3if (window.flag){window.ws1.send(JSON.stringify(s.toObject()));}else{var ws = new WebSocket("ws://127.0.0.1:9999");window.ws1=ws;window.flag =true;ws.open = function(evt){};ws.onmessage = function(evt){ws.send(JSON.stringify(s.toObject()));}}
#python服务器#创建者:秋恋猫工作室#创建时间:2022/8/3import websocketsimport asyncioclass WebSocket:def __init__(self):self.PORT = 9999self.connected = set()self.start_server = websockets.serve(self.echo, "127.0.0.1", self.PORT)asyncio.get_event_loop().run_until_complete(self.start_server)asyncio.get_event_loop().run_forever()async def echo(self, ws):print("客户端已经成功连接---正在运行")self.connected.add(ws)try:# 遍历接收到的每一个消息async for message in ws:print(message)except websockets.exceptions.ConnectionClosed as e:print("A client just disconnected")finally:# 移除异常的客户端self.connected.remove(ws)if __name__ == '__main__':WebSocket1 = WebSocket()
文章转载自秋恋猫,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。





