Populaire onderwerpen
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Ik heb een Instant Messenger-applicatie gebouwd, helemaal op @Cloudflare. Het duurde 1 dag, 3 bestanden, 4 bronnen... en het is klaar om te schalen van 0 naar miljoenen.
Worker → authenticatie & routering
D1-database → gebruikers/wachtwoord opslaan
User DO → gebruikersprofiel & vrienden
Conversation DO → berichten
Blog in antwoord, maar hier een snelle teaser:
cloudflare/actors-bibliotheek maakte veel hiervan een fluitje van een cent met persistente eigenschappen, eenvoudig beheer van websockets en het verzenden van berichten naar alle luisteraars. Maar wat deed elk onderdeel?
Authenticatie & Routering (Worker + D1)
Alle verzoeken komen via de Worker, ofwel geauthenticeerd of niet. Als niet-geauthenticeerd zijn de beschikbare acties inloggen of aanmelden. Wanneer geauthenticeerd kan het verzoek worden doorgestuurd naar een van onze Durable Objects (gebruiker of gesprek) om een websocketverbinding tot stand te brengen. Alle authenticatie-informatie van gebruikers wordt opgeslagen in een D1-database (ik heb het allemaal CF gehouden voor dit voorbeeld).
Gebruikersservice (Durable Object)
Onze vriendenlijstweergave maakt rechtstreeks verbinding met ons gebruikers-Durable Object via websocket. Wanneer we onze status bijwerken, sturen we een bericht naar onze individuele DO, die vervolgens via RPC kan uitzenden naar de DO's van onze vrienden en bepalen of ze online zijn om hen een websocketbericht voor live-updates te sturen. Hier slaan we ook onze vriendenlijst op in een SQLite-database die is beperkt tot onze gebruiker.
Gesprekservice (Durable Object)
Elke individuele conversatie tussen twee gebruikers krijgt zijn eigen DO-instantie. De enige verantwoordelijkheid is om berichten op te slaan, meldingen te verzenden (via sockets) wanneer nieuwe berichten worden verzonden, en een melding te verzenden wanneer een gebruiker begint te typen, zodat we kunnen zien "Persoon is aan het typen..."
TLDR;
Apps bouwen voor de lol om nostalgische kindherinneringen opnieuw te beleven is... de moeite waard.


Boven
Positie
Favorieten
