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



169
170
171
# File 'lib/sockjs/transports/websocket.rb', line 169

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

Instance Method Details

#closing_frame(response, status, message) ⇒ Object



193
194
195
# File 'lib/sockjs/transports/websocket.rb', line 193

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

#extract_message(event) ⇒ Object



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

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

#handle_request(request) ⇒ Object



160
161
162
163
164
165
166
167
# File 'lib/sockjs/transports/websocket.rb', line 160

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



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

def heartbeat_frame(response)
end

#messages_frame(websocket, messages) ⇒ Object



184
185
186
187
188
189
190
191
# File 'lib/sockjs/transports/websocket.rb', line 184

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



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

def opening_frame(response)
end