Sha256: 228bdedba54017fefc8099561978e7cd71b4b34c2451cc877a4b1647be7dbdab
Contents?: true
Size: 943 Bytes
Versions: 2
Compression:
Stored size: 943 Bytes
Contents
require 'faye/websocket' require 'volt/server/socket_connection_handler' require 'volt/server/websocket/rack_server_adaptor' module Volt # Setup the dispatcher for the socket connection handler. # SocketConnectionHandler.dispatcher = Dispatcher.new class WebsocketHandler def initialize(app) # Setup the rack server and adaptor RackServerAdaptor.load @app = app end def call(env) if Faye::WebSocket.websocket?(env) ws = Faye::WebSocket.new(env) socket_connection_handler = SocketConnectionHandler.new(ws) ws.on :message do |event| socket_connection_handler.process_message(event.data) end ws.on :close do |event| socket_connection_handler.closed ws = nil end # Return async Rack response ws.rack_response else # Call down to the app @app.call(env) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
volt-0.9.3.pre1 | lib/volt/server/websocket/websocket_handler.rb |
volt-0.9.2 | lib/volt/server/websocket/websocket_handler.rb |