Wat een Room Server is¶
BBS · STORE-AND-FORWARD · INLOGGEN · WAT JE ALS GEBRUIKER MERKT
Een kanaal is als roepen in een zaal: wie er op dat moment is hoort het, wie weg is heeft pech. Een room server is de node die het gesprek voor je vasthoudt. Je logt in met een wachtwoord, je stuurt je bericht naar de server in plaats van de lucht in, en wie later terugkomt krijgt alsnog te horen wat hij gemist heeft. Dit hoofdstuk legt uit wat dat in de praktijk betekent — de techniek erachter staat in de vier hoofdstukken die hierop volgen.
[!NOTE] Bron. Deze pagina is geverifieerd tegen de firmware zelf:
MeshCorev1.16.0, commit03b6ef4, 28 juli 2026 — bestandenexamples/simple_room_server/MyMesh.h,examples/simple_room_server/MyMesh.cpp,src/helpers/ClientACL.h,src/helpers/AdvertDataHelpers.h, en de officiëledocs/faq.md. De cijfers over build-targets komen uittools/room-server-overview.py.
De vergelijking¶
De officiële FAQ zet het scherp neer: een kanaal lijkt op roepen, een room server op e-mail. Bij een kanaal ontvang je een bericht op het moment dat het verstuurd wordt, of je ontvangt het nooit. Bij een room server staat het klaar tot je het komt ophalen — of preciezer: tot de server het aan je kwijt kan.
Dat verschil is de hele reden dat het ding bestaat. Voor een groep die niet tegelijk online is — een vereniging, een wijk, een groep wandelaars die verspreid onderweg is — is een kanaal onbruikbaar en een room server precies wat je zoekt.
Wat je als gebruiker doet¶
- De server verschijnt in je contactenlijst. Een room server zendt periodiek een advert uit, net als elke andere node, maar met een eigen type. Je client herkent daaraan dat het geen gewone gesprekspartner is maar een server, en zet hem apart.
- Je logt in met een wachtwoord. Er zijn twee wachtwoorden: één voor
gewone deelnemers en één voor de beheerder. Welke je invult bepaalt wat je
mag. Standaard staat het deelnemerswachtwoord in de meeste firmware op
helloen het beheerderswachtwoord oppassword— beide horen bij ingebruikname te worden veranderd. - Je stuurt je bericht naar de server. Voor je client voelt dat als een direct bericht aan één contact. De server maakt er een post van en zet die in zijn wachtrij.
- De server duwt de posts naar je toe. Je haalt niets op: de server houdt per deelnemer bij tot hoe ver die is, en stuurt de volgende post zodra hij tijd heeft. Voor elke post wil hij een ontvangstbevestiging terug; blijft die uit, dan probeert hij het opnieuw.
Bij stap 4 zit het grootste verschil met wat men er van verwacht. Er is geen knop "haal mijn berichten op". De server werkt zijn deelnemers één voor één af, in een vaste ronde, en stuurt per beurt één post. Wie lang weg is geweest, krijgt zijn achterstand dus druppelsgewijs binnen en niet in één klap.
Wat een room server níet doet¶
Deze lijst is langer dan je zou denken, en hij is belangrijker dan de lijst hierboven. Vier dingen die vaak worden aangenomen en die de firmware niet biedt:
| Verwachting | Wat de firmware doet |
|---|---|
| Je ziet wie er in de room zit | Er is geen ledenlijst. Alleen een beheerder kan een lijst opvragen, en daar staan uitsluitend andere beheerders in |
| De geschiedenis blijft bewaard | De wachtrij heeft 32 plaatsen en staat alleen in het werkgeheugen. Na een herstart is alles weg |
| Een beheerder voegt leden toe en verwijdert ze | Er is één commando dat rechten zet op een publieke sleutel. Toevoegen en verwijderen als handeling bestaat niet |
| Een room server versterkt ook het netwerk | Doorsturen staat standaard uit. Je kunt het aanzetten, maar de officiële FAQ raadt dat af: dan mis je de functies die alleen de repeater-firmware heeft |
[!WARNING] Reken niet op een room server als archief. De 32 posts staan in RAM en nergens anders. Een stroomstoring, een lege accu of een
rebootwist ze zonder waarschuwing. De server is een doorgeefluik dat even kan wachten, geen opslagplaats. Wie het gesprek wil bewaren, bewaart het op de client.
Hoeveel er van zijn¶
De room server is geen zijspoor in het project. Van de 79 variantmappen in de firmware hebben er 65 minstens één room-server-build-target, samen 73 targets — sommige borden hebben er twee of drie, voor een andere schermvariant of een ander zendvermogen. Vrijwel elk bord dat MeshCore ondersteunt kan dus een room server worden; het is een kwestie van andere firmware flashen, niet van andere hardware kopen.
De firmware zelf is klein: vijf bestanden, samen 1518 regels, waarvan
MyMesh.cpp er 1030 voor zijn rekening neemt. Dat is te overzien, en het is
de reden dat de volgende hoofdstukken tot op de byte kunnen gaan.
Meer over de roomserver¶
- Inloggen en de ACL — de drie wachtwoordpaden, wat je met welk wachtwoord mag, en wat er van je lidmaatschap een herstart overleeft.
- Posts en synchronisatie — hoe een bericht een post wordt, hoe de wachtrij werkt en hoe de server bijhoudt wie waar is.
- Requests en CLI — wat een client verder aan de server kan vragen, en hoe je hem op afstand beheert.
- Grenzen en open einden — wat de firmware nog niet
doet, inclusief de
TODO's die er letterlijk in staan.
Voor de plek van de room server tussen de andere communicatievormen, zie Communicatie. Voor het pakket waarin een post over de lucht gaat, zie Direct Messages — een post gebruikt hetzelfde payloadtype.