我使用Rails 4.1.0和Thin,我的Gemfile读取" gem' websocket-rails'"。
到目前为止,我已经能够正确地使用渠道和触发双方的行动。但是,当客户端套接字尝试加入某个频道时,我试图获得某种通知(:subscribe /:subscribe_private)(让它为私有或公共,它不会改变问题)。< / p>
基本上,我看到来自websocket-rails gem的lib / websocket_rails / internal_event.rb正在处理这个流程,但是当我从我的事件路由文件中执行相同操作时,它根本就不会被调用,而我所有的更多& #39;定期&#39;行动起作用。
subscribe :subscribe, :to => MessagesController, :with_method => :test
subscribe :unsubscribe, :to => MessagesController, :with_method => :test
是否有任何一种技巧可以使其发挥作用,例如要使用的WSR的特定版本,还是其他什么?到目前为止,我已经尝试过使用宝石的不同分支。
谢谢!
答案 0 :(得分:0)
我实际上找到了这个问题的答案。这很奇怪,实际上这两个事件(:subscribe /:subscribe_private)仅在被:websocket_rails命名空间包围时才被使用。
所以这不起作用:
WebsocketRails::EventMap.describe do
subscribe :subscribe, to: WebsocketMessagesController, with_method: :subscribe
subscribe :subscribe_private, to: WebsocketMessagesController, with_method: :subscribe_private
subscribe :client_connected, to: WebsocketMessagesController, with_method: :client_connected
subscribe :index, to: WebsocketMessagesController, with_method: :index
subscribe :create, to: WebsocketMessagesController, with_method: :create
end
虽然这样做:
WebsocketRails::EventMap.describe do
namespace :websocket_rails do
subscribe :subscribe, to: WebsocketMessagesController, with_method: :subscribe
subscribe :subscribe_private, to: WebsocketMessagesController, with_method: :subscribe_private
end
subscribe :client_connected, to: WebsocketMessagesController, with_method: :client_connected
subscribe :index, to: WebsocketMessagesController, with_method: :index
subscribe :create, to: WebsocketMessagesController, with_method: :create
end