从5.1升级到5.2后,Rails Action电缆不起作用

数字小队

我将Rails应用程序从5.1.4升级到5.2.1,Action Cable正常运行,但自升级以来无法正常工作。Websocket似乎工作正常,但是Channel无法开始传输和流式传输。

自从与Rails 5.1.4一起使用以来,我的开发服务器就没有问题,并且与Rails 5.2.1一起正常工作的空白应用程序包括开发电缆在我的开发服务器上。

我不知道为什么频道无法启动。

Log在Rails 5.1.4中运行良好。

Started GET "/cable" for 10.0.2.2 at 2018-10-10 15:33:41 +0900
Cannot render console from 10.0.2.2! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Started GET "/cable/" [WebSocket] for 10.0.2.2 at 2018-10-10 15:33:41 +0900
Successfully upgraded to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: Upgrade, HTTP_UPGRADE: websocket)
  User Load (0.6ms)  SELECT  `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1
Registered connection (Z2lkOi8vc2lzL1VzZXIvMQ)
CommentChannel is transmitting the subscription confirmation
CommentChannel is streaming from comment_channel_3
CommentChannel#speak({"comment"=>"43", "commentable_id"=>3, "user_id"=>1})
  Group Load (0.5ms)  SELECT  `groups`.* FROM `groups` WHERE `groups`.`inappropriate` = 0 AND `groups`.`id` = 3 LIMIT 1
   (0.1ms)  BEGIN
  User Load (0.4ms)  SELECT  `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1
  SQL (0.5ms)  INSERT INTO `comments` (`body`, `commentable_id`, `user_id`, `created_at`, `updated_at`, `commentable_type`) VALUES ('43', 3, 1, '2018-10-10 15:33:45', '2018-10-10 15:33:45', 'Group')

Log Rails 5.2.1。没有显示有关CommentChannel的日志。

Started GET "/cable/" [WebSocket] for 10.0.2.2 at 2018-10-11 15:13:56 +0900
Successfully upgraded to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: Upgrade, HTTP_UPGRADE: websocket)
  User Load (0.3ms)  SELECT  `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1
  ↳ app/channels/application_cable/connection.rb:14
Registered connection (Z2lkOi8vc2lzL1VzZXIvMQ)
Started GET "/cable" for 10.0.2.2 at 2018-10-11 15:14:09 +0900
Cannot render console from 10.0.2.2! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Started GET "/cable/" [WebSocket] for 10.0.2.2 at 2018-10-11 15:14:09 +0900

app / channels / application_cable / connection.rb

module ApplicationCable
  class Connection < ActionCable::Connection::Base
    identified_by :current_user

    def connect
      self.current_user = find_verified_user
    end

    private

    def find_verified_user
      if current_user = User.find_by(id: cookies.signed[:user_id])
        current_user
      else
        reject_unauthorized_connection
      end
    end
  end
end

app / channels / application_cable / channel.rb

module ApplicationCable
  class Channel < ActionCable::Channel::Base
  end
end

app / channels / comment_channel.rb

class CommentChannel < ApplicationCable::Channel
  def subscribed
    stream_from "comment_channel_#{params[:id]}"
  end

  def unsubscribed; end

  def speak(data)
    # update comment
  end

  def read(data)
  end
end

app / assets / javascripts / cable.js

//= require action_cable
//= require_self
//= require_tree ./channels

(function() {
  this.App || (this.App = {});

  App.cable = ActionCable.createConsumer();
}).call(this);

comment.js

App.cable.subscriptions.create( {channel: 'CommentChannel', id: $('#comments').data('commentableId') }, {
  connected() {},
    // Called when the subscription is ready for use on the server

  disconnected() {},
    // Called when the subscription has been terminated by the server

  received(data) {
    this.perform('read', { group_id: $('#comments').data('commentableId') });

  },
  speak(comment, commentable_id, user_id){
    return this.perform('speak', {comment, commentable_id, user_id});
  }
});
数字小队

这条线是问题所在。删除此行后,它可以正常工作。

config / environments / development.rb

config.reload_classes_only_on_change = false

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从Rails 4升级到Rails 5后,自定义错误处理不再起作用

将Rails 3升级到5,作用域块语法

将Rails 3.2升级到Rails 5

自Angular / Material从5升级到6后,自定义本机日期适配器不再起作用

从v3升级到v5时代码不起作用

设计authenticate_admin_user!升级到Rails 5后不起作用

从CodeEffects 4.3.7.2升级到5后,Xml.IsRuleValid失败

从PHP 5升级到PHP 7后,PHP动态变量返回NULL

从5升级到6后,Katalon Studio缺少报告

从2.4升级到5后,Perl Elastic查询中断

如何将mvc2升级到mvc5?

从MVC2升级到MVC5项目

将GlassFish 4.1升级到4.1.1后,@ Inject在@FacesConverter中不起作用

从0.13升级到2.8.1后,React-router不起作用

Logitech M515升级到12.04后不起作用

从17.04升级到17.10后,Alt + Tab和Super + Tab不起作用

从17.04升级到17.10后,重复键不起作用

将Wicket从6.20升级到7.0后,JNDI在JUnit中不起作用

将Spring Boot 1.5升级到2 <sec:authorize>不起作用

将Linux Mint升级到17.1后VirtualMachine 5不起作用

从Xcode 5升级到Xcode 6.0.1后,XCTest.framework和MyAppTests.xctest以红色显示

将MVC4升级到MVC5后删除的添加控制器选项

从Angular 5升级到6后:错误:未捕获(按承诺):TypeError:undefined不是函数

将Spring Boot版本从1.3.5升级到1.4.2后,DB2ZOS方言不起作用

elasticsearch-2是否兼容将kibana从版本4.5升级到5.x或6.x

从11.10升级到14.04后,笔记本电脑键盘键不起作用

从Ubuntu 15.04升级到16.04后,tor obfs4 ClientTransportPlugin不起作用

从13.10升级到14.04后,为屏幕截图分配“打印”按钮不起作用

通过RVM将ruby 2.2.2升级到2.2.3后,rake db:migrate不起作用