This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
# encoding: BINARY
|
||||
|
||||
module EventMachine
|
||||
module WebSocket
|
||||
module MessageProcessor03
|
||||
def message(message_type, extension_data, application_data)
|
||||
case message_type
|
||||
when :close
|
||||
@close_info = {
|
||||
:code => 1005,
|
||||
:reason => "",
|
||||
:was_clean => true,
|
||||
}
|
||||
if @state == :closing
|
||||
# TODO: Check that message body matches sent data
|
||||
# We can close connection immediately since there is no more data
|
||||
# is allowed to be sent or received on this connection
|
||||
@connection.close_connection
|
||||
else
|
||||
# Acknowlege close
|
||||
# The connection is considered closed
|
||||
send_frame(:close, application_data)
|
||||
@connection.close_connection_after_writing
|
||||
end
|
||||
when :ping
|
||||
# Pong back the same data
|
||||
send_frame(:pong, application_data)
|
||||
@connection.trigger_on_ping(application_data)
|
||||
when :pong
|
||||
@connection.trigger_on_pong(application_data)
|
||||
when :text
|
||||
if application_data.respond_to?(:force_encoding)
|
||||
application_data.force_encoding("UTF-8")
|
||||
end
|
||||
@connection.trigger_on_message(application_data)
|
||||
when :binary
|
||||
@connection.trigger_on_binary(application_data)
|
||||
end
|
||||
end
|
||||
|
||||
# Ping & Pong supported
|
||||
def pingable?
|
||||
true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user