チャットは多くの人が必要とし、シンプルであるべきものの1つだが、開発者はコードを再発明し続けるか、それをいじらないようにサービスを購入するだけです。そしてコストは膨れ上がります。自社でホスティングする場合、セキュリティは常に懸念事項です。さらに悪いことに、チャット機能に障害が発生すると、ユーザーはすぐに気づく!もし、ゲームやアプリにチャットを簡単に追加できるとしたら?セキュリティはすでに施されていて、ニーズに合わせて拡張でき、比較的安価だとしたらどうでしょうか?
私たちは最近、Momento Topicsというサーバーレスの公開・購読メッセージングサービスを使ったサンプルアプリを作成・公開しました。 Momento Topicsを自分のアプリに組み込んだり、思う存分カスタマイズしたり、必要なものだけを選んで残りを残しておくこともできます。このアプリの例では、ブラウザアプリにReactフレームワークのNext.jsを使用し、MomentoのWeb SDKを使用してブラウザからMomento Topicサービスへ直接pub/sub通信を可能にしています。この例では、ウェブソケット、ホスティングする余分なサービス、仲介アプリなどがありません。VercelやNetlifyのようなホスティングサービスにデプロイし、数分で立ち上げ、実行し、公開することができます!
このサンプルアプリとMomentoトピックスには、いくつか重要な点があります。
1.このアプリは、複数のトピックを使用することで、複数のシンプルな「チャットルーム」をサポートすることができます。これは、Momento Topics用の新しいトピッククライアントオブジェクトをインスタンス化するだけで、チャットルームの作成をサポートできるため重要です。ルームを作成するための管理作業は不要で、ルームは使い捨てです。いつものように、転送されたデータ量に対してのみ課金され、それ以外は一切かかりません。
2.これは、ブラウザからMomentoトピックへの安全な直接接続です。ブラウザとMomentoサービスの間でデータをシャッフルする中間データサービスはありません。このソリューションには、Momento 認証トークンの「自動販売機」が組み込まれており、ブラウザにセッション用の短期間のトークンを発行し、ユーザーが持つべき部屋のみにアクセスできるようにします。これらのトークンはタイムアウトし、必要であれば自動的にリフレッシュすることができ、データとサービスを安全に保つことができます。この同じトークン自動販売機は、あらゆるクライアントにトークンを発行できますが、このアプリの例では、Momento Topicsに直接接続しているブラウザです。
3.チャットアプリで使われているトークンは、範囲が狭く、寿命を短くセットします。トークンは1つのチャット・ルームに30分間だけアクセスできます。
4.このコードを使えば、インターネット・スケールのチャット・アプリケーションの約80パーセントが完成します。私は簡単なボタンが好きです!
あなたのゲームやアプリに統合するチャットアプリを簡単に始めて使いたいなら、このサンプルアプリとMomento Topicsをぜひ試してみてください。
詳細については、Momento Topics、Momentoの認証トークンのセキュリティ、およびこのアプリが使用しているMomento Auth APIのドキュメントを参照してください。