Rails バックエンドを持つ角度のあるアプリにメッセージングを追加しようとしています。メッセージングを「リアルタイム」に感じさせるために、$interval ディレクティブを使用してサーバーを呼び出し、5 秒ごとに 2 人のユーザー間の会話を取得しています。また、$watch を使用してメッセージを確認し、オブジェクトが変更されているかどうかを確認しています。変更されている場合は、新しい会話が表示されます。
コード:
$scope.messages = messages.messages
getNewMessage = ->
conversation.getConverationBetweenTwoUsers($stateParams.userId).then ((messages) ->
$scope.messages = messages.messages
), (error) ->
$state.reload()
checkForNewMessages = ->
$interval(getNewMessage, 5000)
$scope.$watch('messages.messages', checkForNewMessages, true)
このアプローチの代わりに websocket を使用する必要がある理由を誰かに説明してもらえますか? また、私がやっていることが悪い考えである場合は、その理由とより良いアプローチを説明してください.
すでに会話をしているユーザーがいて、既存の会話に対応できるソリューションがあることを覚えておいてください。