私は現在、Web アプリに取り組んでおり、チャット アプリの機能に取り組んでいます。Websockets を使用するリアルタイム チャット機能を作成し、WS サーバーとして phpwebsocket を作成したいのですが、チャットをデータベースに記録したいのですが、質問は、ユーザー エクスペリエンスの観点から、次のうちどれがベスト プラクティスになるかということです。および Web サーバーのパフォーマンス:
- クライアントがメッセージを送信するたびに、まず ajax 経由でメッセージがサーバーに送信され、スクリプトが必要な処理を実行してデータベースにログを記録し、true を返し、成功すると情報をクライアントに返し、コールバック関数を返します。メッセージを websocket サーバーに送信し、サーバーはそれを受信者に中継するだけです。
- クライアントがメッセージを送信するたびに、メッセージは websocket サーバーに送信され、websocket が処理を行い、データベースに投稿し、成功するとメッセージを受信者に中継します。
2 番目のオプションに関する私の懸念は、websocket サーバーに負荷がかかりすぎることです。これは、さまざまなクライアントにサービスを提供する単一のスクリプトであるためです。