Sha256: fb32c770e3244beec2860d15c01c4e4e6a06628500a9ecf61e64f3969e0c5720
Contents?: true
Size: 1.29 KB
Versions: 1
Compression:
Stored size: 1.29 KB
Contents
require 'em-websocket' module Alondra module Server extend self def run Rails.logger.info "Server starting on port #{Alondra.config.port}" EM::WebSocket.start(:host => '0.0.0.0', :port => Alondra.config.port) do |websocket| websocket.onopen do session = SessionParser.parse(websocket) Rails.logger.info "client connected." Connection.new(websocket, session) end websocket.onclose do Rails.logger.info "Connection closed" Connections[websocket].destroy! if Connections[websocket].present? end websocket.onerror do |ex| puts "Error: #{ex.message}" Rails.logger.error "Error: #{ex.message}" Rails.logger.error ex.backtrace.join("\n") Connections[websocket].destroy! if Connections[websocket] end websocket.onmessage do |msg| Rails.logger.info "received: #{msg}" CommandDispatcher.dispatch(msg, Connections[websocket]) end end EM.error_handler do |error| puts "Error raised during event loop: #{error.message}" Rails.logger.error "Error raised during event loop: #{error.message}" Rails.logger.error error.stacktrace if error.respond_to? :stacktrace end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
alondra-0.0.3 | lib/alondra/server.rb |