暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

抖音直播弹幕获取-服务器与客户端的搭建(2)

秋恋猫 2022-08-03
4476


在上一期中(一),分析了抖音直播间的hook入口,那这一期将讲解如何将直播间的message获取到本地的websocket服务器上


图一

原理:就是在浏览器中创建一个ws客户端,监听抖音runAllEvents,方法中的s.toObject语句,监听到这个message后,传到本地python服务器上,然后再对message进行二次处理。


弹幕信息二次开发方向
①用户关注

②用户点赞 

③用户进入直播间 

④用户发言 

⑤用户刷礼物    

⑥用户个人信息。

①弹幕游戏开发

②直播舆论检测与分析

③礼物榜单展示

④智能弹幕语音

代码如下:

    //浏览器客户端
    //创建者:秋恋猫工作室
    //创建时间:2022/8/3
    if (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/3
      import websockets
      import asyncio




      class WebSocket:
      def __init__(self):
      self.PORT = 9999
      self.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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论