小编Mar*_*son的帖子

WebSockets:可以连接但无法订阅频道

我有一个仅包含 Rails API 的应用程序,在 nginx 中与乘客一起运行。我正在尝试使用 Action Cable 在 Flutter 中设置一个简单的聊天应用程序,但我似乎无法让它正常工作。

我可以使用以下方式进行连接:

 channel = IOWebSocketChannel.connect("wss://my.domain/cable")
Run Code Online (Sandbox Code Playgroud)

发生这种情况时,请在我的 production.log 中查看以下内容:

Started GET "/cable" for [redacted] at 2019-03-14 19:44:09 +0000
Started GET "/cable" [WebSocket] for [redacted] at 2019-03-14 19:44:09 +0000
Successfully upgraded to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: upgrade, HTTP_UPGRADE: websocket)
Doorkeeper::AccessToken Load (0.3ms)  SELECT  `oauth_access_tokens`.* FROM `oauth_access_tokens` WHERE `oauth_access_tokens`.`token` = '[redacted]' LIMIT 1
User Load (0.2ms)  SELECT  `users`.* FROM `users` WHERE `users`.`id` = 2 LIMIT 1
Registered connection (Z2lkOi8vYWdlbnQyNHg3L1VzZXIvMg)
Run Code Online (Sandbox Code Playgroud)

所以连接似乎已建立并成功升级

然后我发送订阅命令

channel.sink.add(json.encode({
  "command": …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails nginx redis actioncable flutter

5
推荐指数
1
解决办法
2081
查看次数

标签 统计

actioncable ×1

flutter ×1

nginx ×1

redis ×1

ruby-on-rails ×1