def message(message_type, extension_data, application_data)
case message_type
when :close
if @state == :closing
@connection.close_connection
@state = :closed
else
send_frame(:close, application_data)
@state = :closed
@connection.close_connection_after_writing
end
when :ping
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_message(application_data)
end
end