5 个不稳定版本

0.3.1 2023 年 3 月 26 日
0.3.0 2023 年 3 月 23 日
0.2.1 2022 年 12 月 2 日
0.2.0 2022 年 12 月 2 日
0.1.0 2022 年 11 月 27 日

#226 in WebSocket

MIT 许可证

27KB
681

felgens

哔哩哔哩直播弹幕 WebSocket 库

asciicast

用法

use anyhow::Result;
use felgens::{ws_socket_object, WsStreamMessageType};
use tokio::sync::mpsc::{self, UnboundedReceiver};

#[tokio::main]
async fn main() {
   let (tx, rx) = mpsc::unbounded_channel();

   // bilibili live room id (true id): 22746343

   let ws = ws_socket_object(tx, 22746343);

   if let Err(e) = tokio::select! {v = ws => v, v = recv(rx) => v} {
       eprintln!("{}", e);
   }
}

async fn recv(mut rx: UnboundedReceiver<WsStreamMessageType>) -> Result<()> {
   while let Some(msg) = rx.recv().await {
       println!("{:?}", msg);
   }

   Ok(())
}

或运行 cargo run --example danmu

待办事项!

  • 弹幕
  • SC
  • xxx 进了该房间
  • 礼物
  • 红包

依赖项

~14–28MB
~605K SLoC