Naar de inhoud
Dialova

IRC-documentatie · Expert

Batch: samenhangende IRC-gebeurtenissen groeperen

batch geeft aan dat meerdere IRC-berichten één groep vormen. Het type bepaalt de relatie, bijvoorbeeld een netsplit of geschiedenisfragment. Een batch is niet automatisch een meerregelig gesprek.

Dialova-team · Gecontroleerd op

Een groep openen, koppelen en sluiten #

IRC-uitwisseling: C = client, S = server
S: :irc.example BATCH +lot1 netsplit irc-a.example irc-b.example
S: @batch=lot1 :Bob!u@cloak.example QUIT :Connexion interrompue
S: @batch=lot1 :Chloe!u@cloak.example QUIT :Connexion interrompue
S: :irc.example BATCH -lot1

De server opent met + en een ondoorzichtige identifier, gevolgd door het type. Bijbehorende berichten dragen de batch-tag. - met dezelfde identifier sluit de groep. De identifier is hoofdlettergevoelig en heeft geen inhoudelijke betekenis.

Onderhandeling en groepstype #

De client vraagt batch en wacht op ACK. Die moet tagformaat begrijpen. Batchtypes worden niet als lijst met CAP onderhandeld. Elke uitbreiding beschrijft haar type. Een onbekend type is geen reden inhoud weg te gooien.

Een lege groep is mogelijk. Groepen kunnen door elkaar lopen en genest zijn. Eén algemene buffer of aannemen dat alle volgende berichten erbij horen, verwerkt geldige uitwisselingen verkeerd.

Geschiedenis en huidige status #

Het type chathistory groepeert oude gebeurtenissen. Laat een huidige deelnemer niet vertrekken omdat een oude QUIT in geschiedenis staat. Visuele weergave en actuele statuswijziging hebben andere doelen.

Op de controledatum is de geschiedenisaanvraag nog draft/chathistory, terwijl het batchtype chathistory definitief is. draft/multiline beschrijft weer iets anders. Alleen batch ondersteunen belooft deze functies niet.

Verwerking begrenzen en afronden #

  • Bewaar groepen in een tabel per identifier, niet in één variabele.
  • Bewaar de koppeling met een eventuele bovenliggende groep.
  • Begrens grootte en aantal groepen en verwerk transportonderbrekingen.
  • Toon geschiedenis niet als nieuwe gebruikersactie en antwoord niet automatisch op oude gebeurtenissen.

Bronnen en controle

De voorbeelden gebruiken fictieve gebruikersnamen en domeinen, behalve waar verbindingspunten uitdrukkelijk zijn gedocumenteerd. Uitbreidingen en netwerkspecifieke instellingen worden in de tekst aangegeven.