提交 426676e8 编写于 作者: P Pratik Naik

Confirm connection monitor subscription on open

上级 725c913c
......@@ -154,7 +154,7 @@ def cookies
def handle_open
connect if respond_to?(:connect)
subscribe_to_internal_channel
beat
confirm_connection_monitor_subscription
message_buffer.process!
server.add_connection(self)
......@@ -173,6 +173,13 @@ def handle_close
disconnect if respond_to?(:disconnect)
end
def confirm_connection_monitor_subscription
# Send confirmation message to the internal connection monitor channel.
# This ensures the connection monitor state is reset after a successful
# websocket connection.
transmit ActiveSupport::JSON.encode(identifier: ActionCable::INTERNAL[:identifiers][:ping], type: ActionCable::INTERNAL[:message_types][:confirmation])
end
def allow_request_origin?
return true if server.config.disable_request_forgery_protection
......
......@@ -56,7 +56,7 @@ def send_async(method, *args)
run_in_eventmachine do
connection = open_connection
connection.websocket.expects(:transmit).with(regexp_matches(/\_ping/))
connection.websocket.expects(:transmit).with({ identifier: "_ping", type: "confirm_subscription" }.to_json)
connection.message_buffer.expects(:process!)
connection.process
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册