【发布时间】:2015-08-26 19:26:11
【问题描述】:
我想尝试制作一个简单的实时聊天 Rails 网络应用程序,但我认为我需要某种让我们称之为“事件侦听器”的功能,以便能够跟踪发送的消息,以便接收者用户的提要得到用新消息更新。另外,对于Typing... 通知框。
我希望我自己解释一下。
我想我可以用一种非常像穴居人的方式来做到这一点,如下所示:
main.js:
while(true) {
$.get('/user-you-are-talking-to/are-there-new-messages', function(data) {
if (data['are_there_new_messages'] === true) {
$('#conversation').append(data['new_message']);
}
});
}
conversation_controller.rb:
# routed by /user-you-are-talking-to/are-there-new-messages'
def new_messages?
unless @new_messages.blank?
@json = []
@json[:are_there_new_messages] = @new_messages.count > 0
@json[:new_message]= @new_messages.shift
render json: @json
end
end
但除了我没有测试该代码这一事实之外,显然,while 循环和对服务器的不断请求似乎是一个非常糟糕的主意。
我想知道 Rails 是否有这样的内置功能,但据我所知,它没有,不像我使用过的框架,如 Laravel。如果没有内置工具,我该怎么做这个应用程序?
【问题讨论】:
标签: ruby-on-rails ajax ruby-on-rails-4