インスタントメッセンジャーアプリも@Cloudflareで作りました。1日、3つのファイル、4つのリソース...そして0から数百万までスケールアップできる準備が整っています。 ワーカー→認証とルーティング D1データベース → ユーザー/パスを保存します ユーザーDO→ユーザープロフィールと友人 会話はメッセージ→ 返信をブログで書きますが、ここで簡単なティーザーをします: Cloudflare/Actorsライブラリは、永続プロパティ、簡単なWebソケット接続管理、全リスナーへのメッセージ送信などで、この作業を非常に容易にしました。しかし、それぞれの作品は何をしていたのでしょうか? 認証&ルーティング(ワーカー+D1) すべてのリクエストは認証済みか否かにかかわらずワーカーを通じて行われます。認証されていない場合、ログインまたはサインアップの操作が可能です。認証されると、リクエストをユーザーまたは会話のいずれかのDurable Objectsに渡し、Webソケット接続を確立できます。すべてのユーザーの認証情報はD1データベースに保存されます(この例はすべてCFに保管しています)。 ユーザーサービス(耐久物) フレンドリストビューはWebソケットを介してユーザーのDurable Objectに直接接続しています。ステータスを更新すると、それぞれのDOにメッセージを送り、そこからRPCを通じて友人DOにブロードキャストし、オンラインかどうかを判定してウェブソケットメッセージを送ってライブ更新を行います。ここで、ユーザー専用のSQLiteデータベースにフレンドリストを保存しています。 会話サービス(耐久物) 2人のユーザー間の各個別の会話にはそれぞれのDOインスタンスが割り当てられます。その唯一の役割は、メッセージを保存し、新しいメッセージが送信された際に(ソケット経由で)通知を送り、ユーザーが入力を始めたときに通知を送ることで、「Person is tin is loading here...」を確認できるようにすることです。 要約; 懐かしい子供時代の思い出を思い出すためにアプリを作るのは...それだけの価値はある。