Rakensin Instant Messenger -sovelluksen kokonaan @Cloudflare. Se vei 1 päivän, 3 tiedostoa, 4 resurssia... Ja se on valmis skaalaamaan nollasta miljooniin. Työntekijän → todennus ja reititys D1-tietokanta → tallennus käyttäjä/passi Käyttäjä DO → käyttäjäprofiili ja ystävät Keskustelu DO → viestejä Blogi vastaukseksi, mutta nopea maistiainen täällä: Cloudflare/actors-kirjasto teki tästä suurimman osan helpoksi persist-ominaisuuksilla, helpolla web socket-yhteyksien hallinnalla ja viestien lähettämisellä kaikille kuuntelijoille. Mutta mitä kukin teos teki? Auth & Reititys (työntekijä + D1) Kaikki pyynnöt tulevat Työntekijän kautta joko todennuksella tai ei. Jos todennus puuttuu, käytettävissä olevat toiminnot ovat kirjautuminen tai rekisteröityminen. Kun todennus on todennettu, se voi välittää pyynnön jommallekummalle Durable Objectille (käyttäjälle tai keskustelulle) muodostaakseen web-socket-yhteyden. Kaikki käyttäjien todennustiedot tallennetaan D1-tietokantaan (tässä esimerkissä säilytettiin kaikki CF:nä). Käyttäjäpalvelu (kestävä objekti) Ystävälistanäkymämme yhdistyy suoraan käyttäjän Durable Objectiin web-socketin kautta. Kun päivitämme tilamme, lähetämme viestin yksittäiselle DO:llemme, joka voi lähettää sen RPC:n kautta ystäviemme DO:lle ja selvittää, ovatko he verkossa, lähettääksemme heille verkko-viestin live-päivitystä varten. Täällä säilytämme myös ystävälistamme SQLite-tietokantaan, joka on laajempi käyttäjällemme. Keskustelupalvelu (kestävä esine) Jokaisella yksittäisellä keskustelulla kahden käyttäjän välillä on oma DO-instanssi. Sen ainoa vastuu on tallentaa viestejä, lähettää ilmoituksia (socketien kautta) kun uusia viestejä lähetetään, ja lähettää ilmoitus, kun käyttäjä alkaa kirjoittaa, jotta näemme "Henkilö kirjoittaa..." TLDR; Sovellusten rakentaminen huvin vuoksi nostalgisten lapsuusmuistojen elämisen vuoksi on... sen arvoista.