module EventMachine::WebSocket::MessageProcessor03

Public Instance Methods

message(message_type, extension_data, application_data) click to toggle source
# File lib/em-websocket/message_processor_03.rb, line 5
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
pingable?() click to toggle source

Ping & Pong supported

# File lib/em-websocket/message_processor_03.rb, line 41
def pingable?
  true
end