1.b站直播弹幕是tcp和websocket的,大致逻辑都一致。都是向某url请求以建立连接并进入房间,30秒间隔的心跳以及反馈包,还有弹幕推送。tcp这里处理恶心了一点,故我使用了websocket,这也是b站网页端的使用协议。
2.python的websocket建议使用asyncio这个方法,多线程恶心,普通单线程是无法有效实现不断心跳循环+不断接受弹幕推送这俩个基本循环的问题的。websocket这里我推荐aiohttp
3.websocket包裹解析这里网络很多不赘述
4.设计协称首先要建立连接(向url发送请求,建立到某直播弹幕的websocket连接);然后同时运行心跳循环和接受信息循环,并且进行监控;如果两个循环任意一个发生错误(比如网络问题),需要关闭websocket连接,重新建立新的连接(while循环起来)。这样就写完了一个弹幕模块。