2

我正在尝试将websocket-rails(独立,在 local.host:3245 上与 redis 同步)与我的 Rails Grape API(在 local.host:3001 上运行)一起使用

现在我尝试从我的 Grape API 端点之一向通道 A 发送消息,例如:

WebsocketRails[:a_channel].trigger('welcome_message', 'Hello world!')

然后在我的 Rails 客户端(在 local.host:3005 上运行)我尝试获取消息并在浏览器中显示它。使用 WebsocketRails js 客户端,我可以连接到服务器。订阅频道并绑定到wiki中建议的事件:

var dispatcher = new WebSocketRails('local.host:3245/websocket');
var channel = dispatcher.subscribe('a_channel');
channel.bind('welcome_message', function(data) {
  console.log('channel event received: ' + data);
});

但是,我的 console.log 中没有显示任何内容,但是当我查看 websocket_rails.log 时,我看到:

[2015-08-18 10:03:23.184] [[32mChannel[0m] [a_channel] {"welcome_message"=>"Hello world!"}

当我使用 redis 查看时,redis-cli monitor我没有看到 websocket_rails 键(至少我认为它们应该在那里......)而且在我的

chrome developer environment --> websockets --> headers我看到客户端和服务器之间的 ping / pong,但所有变量都是空的。

我不使用 WebsocketControllers 或 events.rb 路由,应该吗?基于这个 wiki 页面,我认为我不必这样做。另外,由于 API 版本控制,我宁愿不使用控制器,而是将所有内容保存在我的 Grape 文件中。

有没有人有建议/想法如何解决这个问题?

提前致谢!

笔记:

  • 导轨 4.2.3
  • 红宝石 2.1.0
  • API 服务器在 Unicorn 上运行
  • rails 客户端在 Thin 上运行
4

0 回答 0