Jag byggde en Instant Messenger-applikation helt på @Cloudflare. Det tog 1 dag, 3 filer, 4 resurser... Och den är redo att skala från 0 till miljoner. Autentisering och routing av arbetstagares → D1-databas → lagra användare/pass. Användare GÖR → användarprofil & vänner Samtal GÖR → meddelanden Blogg som svar, men en snabb teaser här: Cloudflare/Actors-biblioteket gjorde mycket av detta enkelt med persist-egenskaper, enkel webbsocket-anslutningshantering och att skicka meddelanden till alla lyssnare. Men vad gjorde varje del? Auth & Routing (Worker + D1) Alla förfrågningar går via Workern, antingen autentiserade eller inte. Om den inte är autentiserad är tillgängliga åtgärder att logga in eller registrera sig. När den autentiseras kan den skicka förfrågan vidare till någon av våra Durable Objects (användare eller konversation) för att etablera en websocket-anslutning. All användares autentiseringsinformation lagras i en D1-databas (har behållit allt CF i detta exempel). Användartjänst (varaktigt objekt) Vår vänlistavy kopplas direkt till vår användares Durable Object via webbsocket. När vi uppdaterar vår status skickar vi ett meddelande till vår individuella DO, som sedan kan sändas via RPC till våra vänners DO:er och avgöra om de är online för att skicka ett webbsocket-meddelande för liveuppdatering. Här sparar vi också vår vänlista i en SQLite-databas som är anpassad till vår användare. Konversationstjänst (varaktigt objekt) Varje enskild konversation mellan två användare får sin egen DO-instans. Dess enda ansvar är att lagra meddelanden, skicka notiser (via sockets) när nya meddelanden skickas, och skicka en notifikation när en användare börjar skriva så att vi kan se "Personen skriver..." Sammanfattning: Att bygga appar för skojs skull för att återuppleva nostalgiska barndomsminnen är... Värt det.