0

我正在使用 Ruby on Rails 3 后端和 HTML AJAX 前端构建一个 facebook 聊天应用程序。对于我使用Pusher的套接字。一切正常,但有一个缺点,那就是性能。

对 Pusher API 的请求大约需要 300 毫秒,这太慢了。

触发 Pusher API 的代码是这样的:

Pusher['presence-chat'].trigger!( 'message_added', { message: message, name: session[:user][:fullname], username: session[:user][:username] } )

Pusher课程来自推动者开发人员制作的宝石。

我最近在他们的论坛上发帖,正在等待答案,但我想知道这里是否有人可以为我指出正确的方向以加快速度。

仅供参考:

运行应用程序的服务器在荷兰,我猜他们的服务器不是。

所以问题是,是什么导致一个简单Net::HTTP的(因为这就是 Pusher-gem 正在使用的)这么慢?

提前致谢!

4

3 回答 3

1

所以,我已经从我的标准 WEBrick 服务器切换到 Thin(= Evented Server)。

我将触发方法更新为异步触发方法:

Pusher['presence-chat'].trigger_async( 'message_added', { message: message, name: session[:user][:fullname], username: session[:user][:username] } )

现在请求只需 2 - 4 毫秒!

感谢菲尔@Pusher!

于 2012-10-11T14:54:54.640 回答
0

尝试使用一些后台作业推送到免费的 api

sidekiq、延迟工作、resque 等有一些很棒的宝石

还有railscasts可以帮助您轻松理解它

http://railscasts.com/episodes?utf8=%E2%9C%93&search=background+job

于 2012-10-11T08:51:39.617 回答
0

在前面使用 node.js 和 RoR 的套接字怎么样,您将通过此配置获得最大的性能

你可以参考这个 http://liamkaufman.com/blog/2012/02/25/adding_real-time_to_rails_with_socket.IO_nodejs_and_backbonejs_with_demo/

于 2012-10-11T10:00:02.863 回答