Websocket-rails不会触发消息到通道(独立,同步)

时间:2015-08-18 10:01:41

标签: ruby-on-rails-4 websocket-rails

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

现在我尝试使用例如:

从我的一个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-cli monitor查看redis时,我没有看到websocket_rails键(至少我认为它们应该在那里......)以及我的

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

我不使用WebsocketControllers或events.rb路由,我应该吗?基于this wiki page,我认为我没有必要..而且我宁愿不使用控制器,只是因为API版本控制而将所有内容保存在我的Grape文件中。

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

提前致谢!

注意:

  • Rails 4.2.3
  • Ruby 2.1.0
  • API服务器正在Unicorn上运行
  • rails客户端正在瘦
  • 上运行

0 个答案:

没有答案