THE VIRTUAL TO2026 / EXTENSIONS / EXT 26-104
Nano Réseau 2026.
The EXT 26-104 module, heir of the 1985 school nanonetwork: machines linked in a star to a central, sharing channels. Every station sees the same messages in the same order, enough to write multiplayer games and chat rooms.
- Reference
- TO2026 · EXT 26-104
- Module
- Nano Réseau 2026
- Chip
- NANO
- Port
- EXT 26-112 extension port, beside the screen
- Plugging in
- tick the module in EXTENSIONS, on the Explore the machine page
- TOPOLOGYstar
stations, one central with authority
- CHANNELS1–40
characters: letters, digits, dot, dash, underscore
- LIMITS1 Ko
per message, 10 messages per second, 32 stations per channel
- REAL TIMEWebSocket
with a VAILS central; otherwise the site gateway
01 / WHAT IT DOES
Stations, a central, channels.
The central is chosen in the extension port, through the module’s two menus: a game plugin, and a VAILS server for real time. A program cannot change it; it joins a channel by name, gets a station number there, then sends messages to the whole channel or to a single station. The central numbers every message: all stations see them in the same order, and the sender gets its own back too, so it can act only on its return.
The channel also keeps a shared state, key and value pairs, given to every station that arrives. A write can carry the version it read: it fails if another station wrote in between, so no update is lost. You must be signed in with PROADMIN ON, having accepted the sharing: the site then asks ProAdmin for a ticket on your behalf, presents it to the central server to server, and the machine only receives a single-use pass.
02 / IN BASIC
NANO and NANO$.
| STATEMENT | EFFECT |
|---|---|
NANO CONNECT | joins the central set in the extension port |
NANO JOIN canal$ | joins a channel and gets a station number |
NANO SEND m$ [, poste] | sends to the whole channel, or to one station, without waiting |
NANO RECEIVE m$ | the next message, or an empty string; ON NANO CALL to be told |
NANO SET cle$, valeur$ [, version] | writes into the channel’s shared state |
NANO LEAVE | leaves the channel; a program that stops leaves it too |
NANO$(champ$) | "ETAT", "CANAL", "POSTE", "POSTES", "TEMPSREEL", "ERREUR", and for the last message read "DE", "PSEUDO", "SEQ", "TYPE"; "E:key" and "V:key" for the state |
Without a ProAdmin sign-in, nothing goes out: NANO$("ERREUR") says so, without stopping the program.
nano connect
print "etat : "; nano$("etat")
print "erreur : "; nano$("erreur")etat : hors erreur : connexion
03 / A CHAT ROOM
A program for several stations.
The skeleton of a chat room: join, say hello, then show what arrives while sending what you type. Run on two signed-in machines, each one sees the other arrive and its messages, in the same order.
nano connect
if nano$("erreur") <> "" then print "nano indisponible : "; nano$("erreur") : end
nano join "salon"
nano send "bonjour"
do
nano receive m$
if m$ <> "" then print nano$("pseudo"); " : "; m$
k$ = inkey$
if k$ <> "" then nano send k$
wait vbl
loopnano indisponible : connexion
04 / ERRORS
NANO$("ERREUR") says why.
No NANO statement stops the program: the cause of a failure is read in NANO$("ERREUR"). The codes: absent (module removed), connexion (no PROADMIN ON), droit (sharing not accepted at sign-in), central (central not registered), canal (invalid name or no channel), taille, version (the state changed in between), postes (channel full), reseau, or the code returned by ProAdmin or by the central.