Class: SockJS::Transports::RawWebSocket

Inherits:
WebSocket show all
Defined in:
lib/sockjs/transports/websocket.rb

Instance Attribute Summary

Attributes inherited from Endpoint

#connection, #http_origin, #options, #remote_addr

Attributes included from Endpoint::ClassMethods

#method, #prefix

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from WebSocket

#build_error_response, #build_response, #disabled?, #finish_response, #format_frame, #process_session, #send_data, #session_key

Methods inherited from ConsumingTransport

#finish_response, #format_frame, #get_session, #process_session, #request_closed, #send_data

Methods inherited from SockJS::Transport

#exception_response, #handle_session_unavailable, #request_data, #response_beginning, #server_key, #session_key

Methods inherited from Endpoint

#build_error_response, #build_response, #call, #empty_string, #error_content_type, #format_frame, #handle, #handle_http_error, #initialize, #inspect, #response_class, #setup_response

Methods included from Endpoint::ClassMethods

#add_route, #add_routes, #endpoints, #register, #route_conditions, #routing_prefix

Constructor Details

This class inherits a constructor from SockJS::Endpoint

Class Method Details

.routing_prefixObject



173
174
175
# File 'lib/sockjs/transports/websocket.rb', line 173

def self.routing_prefix
  "/" + self.prefix
end

Instance Method Details

#closing_frame(response, status, message) ⇒ Object



197
198
199
# File 'lib/sockjs/transports/websocket.rb', line 197

def closing_frame(response, status, message)
  finish_response(response)
end

#extract_message(event) ⇒ Object



183
184
185
186
# File 'lib/sockjs/transports/websocket.rb', line 183

def extract_message(event)
  SockJS.debug "Received message event: #{event.data.inspect}"
  event.data.to_json
end

#handle_request(request) ⇒ Object



164
165
166
167
168
169
170
171
# File 'lib/sockjs/transports/websocket.rb', line 164

def handle_request(request)
  ver = request.env["sec-websocket-version"] || ""
  unless ['8', '13'].include?(ver)
    raise HttpError.new(400, 'Only supported WebSocket protocol is RFC 6455.')
  end

  super
end

#heartbeat_frame(response) ⇒ Object



180
181
# File 'lib/sockjs/transports/websocket.rb', line 180

def heartbeat_frame(response)
end

#messages_frame(websocket, messages) ⇒ Object



188
189
190
191
192
193
194
195
# File 'lib/sockjs/transports/websocket.rb', line 188

def messages_frame(websocket, messages)
  messages.inject(0) do |sent_count, data|
    send_data(websocket, data)
    sent_count + data.length
  end
rescue Object => ex
  SockJS::debug "Error delivering messages to raw websocket: #{messages.inspect} #{ex.inspect}"
end

#opening_frame(response) ⇒ Object



177
178
# File 'lib/sockjs/transports/websocket.rb', line 177

def opening_frame(response)
end