首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ActionCable未在javascript中执行订阅

ActionCable未在javascript中执行订阅
EN

Stack Overflow用户
提问于 2017-05-10 04:16:06
回答 1查看 796关注 0票数 5

我使用的是ActionCable,这是非常基本的设置。

我在客户端有这样的功能:

代码语言:javascript
复制
App.chat = App.cable.subscriptions.create "ChatChannel",
  subscribed: ->
    console.log 'subscribed'
  test: ->
    @perform("test")

在服务器上

代码语言:javascript
复制
class ChatChannel < AC..::Channel
  def subscribed
    Rails.logger.info "This is never printed in the logs"
  end
  def test
    Rails.logger.info "This is never printed in the logs"
  end
end

在JS控制台上,我可以看到:

代码语言:javascript
复制
[ActionCable] Opening WebSocket, current state is null, subprotocols: actioncable-v1-json,actioncable-unsupported 1494360634092
[ActionCable] ConnectionMonitor started. pollInterval = 3000 ms 1494360634096
[ActionCable] WebSocket onopen event, using 'actioncable-v1-json' subprotocol 1494360634733
[ActionCable] ConnectionMonitor recorded connect 1494360634734

在服务器日志中,我看到:

代码语言:javascript
复制
Started GET "/cable" for 127.0.0.1 at 2017-05-09 15:10:34 -0500
Started GET "/cable/" [WebSocket] for 127.0.0.1 at 09/05/2017 03:10 PM
Successfully upgraded to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: Upgrade, HTTP_UPGRADE: websocket)
Registered connection (Z2lkOi8vcHJvcGhvL1VzZXIvMg)

如果我从服务器发送一条广播消息,客户端永远不会收到它。如果我尝试从客户端执行操作,它将返回false,并且控制台上不会出现任何内容。

网络选项卡显示:

代码语言:javascript
复制
Request URL:ws://0.0.0.0:3000/cable
Request Method:GET
Status Code:101 Switching Protocols (with a green status icon)

我没有使用redis,用rails server启动服务器

代码语言:javascript
复制
gem 'rails', '~> 5.0.2'
gem 'puma', '~> 3.0'
EN

回答 1

Stack Overflow用户

发布于 2017-05-10 11:55:06

试试看。

代码语言:javascript
复制
App.chat = App.cable.subscriptions.create "ChatChannel",
  # subscribed: ->
  #   console.log 'subscribed'
  # test: ->
  #   @perform("test")

  connected: ->
    @perform("test")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43879086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档