ActionCable:从前端手动关闭连接

ActionCable: close the connection manually from front-end

我无法手动关闭套接字。 只有当我在浏览器中关闭一个标签时它才会退出。

Finished "/cable/" [WebSocket] for 127.0.0.1 at 2016-10-29 16:55:49 +0200

但是当我打电话时

App.cable.subscriptions.remove(App.subscription)

App.subscription.unsubscribe()

正在调用 CommunityChannel 中的方法 "unsubscribed",但电缆仍然存在,我仍然可以在我的函数中打印它 "print_socket"

如何手动关闭连接?

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

    identified_by :current_user

    def connect
      self.current_user = find_verified_user
    end

    protected

    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.cable.subscriptions.remove(App.subscription) 会为您取消订阅 "CommunityChannel",但不会关闭您的连接,

如果你想断开连接,那么就这样做:

App.cable.disconnect()