共有ToDoリストをリアルタイムで編集できるようにしたい。
RESTインターフェースがすでにあり、更新をサーバーに送信することが可能です-アイテムを追加したり、アイテムに完了のマークを付けたりします。
クライアントがこれらの更新をすぐに入手できるように、私はいくつかの調査を行いましたが、最善のアプローチは迅速で信頼性が高いため、WebSocketであると思われます。反対側のプッシュ通知は「数秒」かかる場合があり、信頼できません。 「HTTPブロードキャスト」についても、ビデオなどに適したものを見たと思います。もう一度見つけることができません。
だから私はまず、WebSocketがこれに本当に適しているかどうか、2番目にRESTと組み合わせて使用することをお勧めします-つまり、「プッシュ」を実行しますREST呼び出しを使用してクライアントAからサーバーに送信し、WebSocketを使用してサーバーからクライアントBに「プッシュ」します。もちろん、クライアントBはサーバーに更新を送信する必要があります。 A(および他の可能な参加者)にプッシュされます。そのため、両方のWebSocket接続を開いてmy RESTコードをスローする方が簡単かもしれません。反対側のリストも1つしか持てません。参加者(現在のユーザー)。この場合、WebSocketは必要ありません。したがって、これらのユーザーにRESTを使用させ、複数の参加者がいる場合にのみWebSocketに切り替えるようにできますか?
REST/WebSocketの組み合わせは、このアプリケーションにとって意味がありますか?または私はどちらかに固執する必要がありますか?
すべてを使用できます。3REST APIを使用してサーバーに情報を投稿し、WebSocketを使用して即時更新します。アプリが実行されていない場合はエンドユーザーへのプッシュ通知にフォールバックします(そしてユーザーにはWebSocket接続経由で通知されませんでした)。
もちろん、REST APIは、REST APIで実行できるのと同じように、WebSocketを使用して同じサーバー側のアクションを実行できるため、厳密には必要ありません。しかし、それが理にかなっているかどうかは、実際にサーバーの部分に依存します。すでにREST APIを持っているので、WebSocket用に書き直す必要はそれほどありません。しかし、機能の移行を確実に開始できます。 REST APIの使用を最終的に削除することを目的としてWebSocketを使用する。
完全なWebSocketソリューションが必要な場合(REST既にサーバー側にいくつかのRESTフレームワークがない場合を除いて)は実際には必要ありません)の実装があります。共有todo正規デモ ToDoMVC WebSocketでpub/subを使用するKaazingエンジニアの1人による。これはAngularで記述され、ユニバーサルメッセージングAPIを使用します。