我正在尝试将消息添加到具有 rails 后端的 angular 应用程序中。为了让我的消息传递感觉“实时”,我使用 $interval 指令来调用我的服务器并每 5 秒获取两个用户之间的对话。我还使用 $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 而不是这种方法吗?另外,如果我正在做的是一个坏主意,您能否解释一下为什么以及什么是更好的方法。
请记住,我已经有用户进行对话,并且解决方案可以容纳我现有的对话。