public async Task HandleMessage(IDanmakuClient client, TMessage message)
 {
     foreach (IBilibiliMessageHandler <TMessage> handler in Handlers)
     {
         await handler.HandleMessage(client, message);
     }
 }
Esempio n. 2
0
 public TestHostedService(IServiceProvider services)
 {
     _scope   = services.CreateScope();
     services = _scope.ServiceProvider;
     services.GetRequiredService <IOptionsSnapshot <DanmakuClientOptions> >().Value.RoomId = 7734200; // 使用 DanmakuClientOptions 为 IDanmakuClient 提供房间号
     _client = services.GetRequiredService <IDanmakuClient>();
 }
Esempio n. 3
0
        public override async Task HandleMessage(IDanmakuClient client, IDisconnectedMessage message)
        {
            while (true) // 无限重连
            {
                try
                {
                    await client.ConnectAsync();

                    return;
                }
                catch (OperationCanceledException)
                {
                    break;
                }
                catch (Exception) // 其它异常就丢掉, 你也可以自己魔改
                {
                    try
                    {
                        await Task.Delay(1000, message.Token); // 等1秒
                    }
                    catch (OperationCanceledException)
                    {
                        break;
                    }
                }
            }
        }
 public Task HandleMessage(IDanmakuClient client, IBilibiliMessage message)
 {
     return(base.HandleMessage(client, (TMessage)message));
 }
Esempio n. 5
0
 public virtual Task HandleMessage(IDanmakuClient client, IBilibiliMessage message)
 {
     return(base.HandleMessage(client, message));
 }
Esempio n. 6
0
 public abstract Task HandleMessage(IDanmakuClient client, TMessage message);
Esempio n. 7
0
 public override Task HandleMessage(IDanmakuClient client, IDanmakuMessage message)
 {
     _logger.LogInformation(client.RoomId, $"{message.Time:yyyy-MM-dd HH:mm:ss} {message.UserName}[{message.UserId}]:{message.Comment}");
     return(Task.CompletedTask);
 }