我正在使用 private_pub 来实现一对一的类似聊天的应用程序。
这是我的故事:作为用户,我希望在我的伙伴离开聊天时收到一条消息——关闭窗口等。
在这里查看Faye Monitoring 文档是我尝试绑定unsubscribe
:
# Run with: rackup private_pub.ru -s thin -E production
require "bundler/setup"
require "yaml"
require "faye"
require "private_pub"
require "active_support/core_ext"
Faye::WebSocket.load_adapter('thin')
PrivatePub.load_config(File.expand_path("../config/private_pub.yml", __FILE__), ENV["RAILS_ENV"] || "development")
wts_pubsub = PrivatePub.faye_app
wts_pubsub.bind(:subscribe) do |client_id, channel|
puts "[#{Time.now}] Client #{client_id} joined #{channel}"
end
wts_pubsub.bind(:unsubscribe) do |client_id, channel|
puts "[#{Time.now}] Client #{client_id} disconnected from #{channel}"
PrivatePub.publish_to channel, { marius_says: 'quitter' }
end
run wts_pubsub
但我不断超时:[ERROR] [Faye::RackAdapter] Timeout::Error
窥探PrivatePub#publish_to
,当我从 Rails 或 private_pub 应用程序发布时,数据包含我所期望的,但 private_pub 应用程序一直挂起。
我怎样才能从 private_pub 发布工作?