Websocket-rails在生产环境中没有连接



我使用websocket-rails gem连接到我的rails应用程序-事情是它在我的计算机上工作完美-但在我的生产机器上它就是不工作。

当我连接-它写到websocket_rails日志-我连接-然而,当我试图发送数据到连接-它什么也不做。

我添加了一些日志来帮助我找到问题,似乎WebsocketRails.users是空的-意思是没有连接-即使有。

然而,当我真的从websocket连接断开时,它记录断开-看到代码,它检查它是否连接在记录断开之前-所以我发现它连接。

这是在连接

上触发事件的代码
class Route < ActiveRecord::Base
  acts_as :user
  has_many :students
  after_update  :notify_location_changed, if: Proc.new { |route| route.loc_latitude_changed? || route.loc_longitude_changed? }
  def notify_location_changed
    logger.info "#{self.id} location_updated"
    logger.info "connections: #{WebsocketRails.users.users}" #this is empty - even when there is a connection open - it still pings.
    channel = WebsocketRails[self.id.to_s]
    WebsocketRails.logger.info "sending to the following subscribers of channel #{self.id} - #{channel.subscribers}"
    channel.subscribers.each do |connection|
      logger.info "sending to the following connection #{connection}"
      options = {}
      logger.info "#{connection.data_store}"
      user = connection.data_store[:user].actable
      logger.info "user: #{user.to_json}"
      data = [loc_latitude: loc_latitude - user.pick_up_lat, loc_longitude: loc_longitude - user.pick_up_long].to_json
      options.merge! :channel => channel.name, :token => channel.token
      options[:data] = data
      event = WebsocketRails::Event.new :location_updated, options
      connection.trigger event
    end
  end
end

正如这里所指出的,websocket-rails不是一个活跃的项目,它的最后一次提交是很久以前的事情了。

我建议使用Faye或Plezi等替代名称。

将Plezi应用程序与Rails连接在Plezi的read文件中进行了探索,看起来很容易完成。

相关内容

  • 没有找到相关文章

最新更新