我尝试在我的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文件中。
有没有人有如何解决这个问题的建议/想法?
提前致谢!
注意: