Sha256: 2ed0d77db5cff65f1c3d67852cb5232603b6a466e0b9a030ecff7d4791b6358f
Contents?: true
Size: 943 Bytes
Versions: 5
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
5 entries across 5 versions & 1 rubygems