4

我正在按照本教程进行操作:

http://net.tutsplus.com/tutorials/ruby/how-to-use-faye-as-a-real-time-push-server-in-rails/

我已经安装了 thin, faye 并在 faye.ru 文件中写了以下内容:

require 'faye'
bayeux = Faye::RackAdapter.new(:mount => '/faye', :timeout => 25)
bayeux.listen(9292)

但是当我启动机架服务器时:

rackup faye.ru -E production -s thin

服务器确实正确启动:

>> Thin web server (v1.5.0 codename Knife)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:9292, CTRL+C to stop

但是当我访问任何网页时,例如“http://localhost:9292/”,我会收到以下消息:

Sure you're not looking for /faye ?

本教程和 Ryan Bates rails cast #260 都没有解释为什么会发生这种情况。有人有想法吗?

我必须说我的项目使用的是 ruby​​ 版本 1.8.7(我无法升级到 1.9,因为我使用的一些 gem 还不支持 1.9)。

4

3 回答 3

5

好的,实际上一切正常,我只是不明白 Faye 应该做什么。

Faye 服务器并没有取代 Rails 服务器,而是对其进行了补充。我期待在 localhost:3000 和 localhost:9292 上看到同样的东西。

万一其他人像我一样感到困惑,您必须同时运行两个服务器:

导轨服务器:

 rails server [with your options if any]

Faye 服务器处理 JS 频道:

 rackup faye.ru -s thin -E production

并且用户仅与 rails 服务器交互(在端口 3000 上)并让 Faye 服务器在后台运行。

于 2012-12-10T14:39:23.580 回答
2

您仍然应该使用端口 3000(除非您更改了默认端口或其他内容)。9292 只是用于 Faye 而已。

尝试去“http://localhost:3000”

于 2012-12-10T14:29:14.030 回答
1

输出对我来说看起来不错。

尝试寻找

http://localhost:9292/faye.js

代替

http://localhost:9292/
于 2014-02-10T13:12:43.597 回答