public async Task HandleMessage(IDanmakuClient client, TMessage message) { foreach (IBilibiliMessageHandler <TMessage> handler in Handlers) { await handler.HandleMessage(client, message); } }
public TestHostedService(IServiceProvider services) { _scope = services.CreateScope(); services = _scope.ServiceProvider; services.GetRequiredService <IOptionsSnapshot <DanmakuClientOptions> >().Value.RoomId = 7734200; // 使用 DanmakuClientOptions 为 IDanmakuClient 提供房间号 _client = services.GetRequiredService <IDanmakuClient>(); }
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)); }
public virtual Task HandleMessage(IDanmakuClient client, IBilibiliMessage message) { return(base.HandleMessage(client, message)); }
public abstract Task HandleMessage(IDanmakuClient client, TMessage message);
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); }