乘客中的重复事件,在 websocket-rails 中

Posted

技术标签:

【中文标题】乘客中的重复事件,在 websocket-rails 中【英文标题】:Duplicate events in passenger, in websocket-rails 【发布时间】:2014-01-31 13:54:58 【问题描述】:

我正在使用 phusion 乘客版本 4.0.35

我的 websocket_rails.rb 文件

WebsocketRails.setup do |config|

config.log_level = :debug
config.log_internal_events = false

if Rails.env.production?
config.standalone = true
else
config.standalone = false
end
config.synchronize = false
end

在我使用的普通控制器中

connection1 = WebsocketRails.users[one_user_id]
connection1.send_message :online, @reply.to_json(:methods => required_methods)
connection2 = WebsocketRails.users[another_other_user_id]
connection2.send_message :online, @reply.to_json(:methods => required_methods)

在客户端

var socket_path = document.domain + ":3001" + '/websocket'

var dispatcher = new WebSocketRails(socket_path)

dispatcher.bind('online', function(data)
.................
..................................

问题是我在控制器上调用 send_message 时收到两次响应,两个用户都收到两次响应。

另一件事是它在以瘦服务器模式运行的普通服务器模式下的开发效果很好。

【问题讨论】:

【参考方案1】:

请你使用 .deliver 功能

Actionmailer not delivering mail, with rails 3这会帮助你,让我知道

【讨论】:

问题根本与 ActionMailer 无关。 是的,这个问题是关于 actionmailer 的。它与实时推送通知系统有关,而在我的情况下,客户端从服务器接收 json 响应。

以上是关于乘客中的重复事件,在 websocket-rails 中的主要内容,如果未能解决你的问题,请参考以下文章

为啥 websocket-rails 需要作为独立服务器启动以支持基于非事件机的 Web 服务器?

PHP XML XPath - 停止重复节点

司机乘客匹配中的距离和最小问题

Rails 4 + Websocket-rails + Passenger + Nginx + 负载均衡器

无法在生产服务器上为 websocket-rails 启动独立服务器

websocket-rails,websocket握手错误