Sha256: 384e966d40e1885c1890606f0c5bf0c6fbb149f0d480430ee103fc778978173b
Contents?: true
Size: 1.18 KB
Versions: 2
Compression:
Stored size: 1.18 KB
Contents
module Tribe module EM class TcpServer < Tribe::Actor private def initialize(ip, port, actor_class, options = {}) super(options) @ip = ip || raise('IP is required.') @port = port || raise('Port is required.') @actor_class = actor_class || raise('Actor class is required.') start_listener end def on_start_listener(event) start_listener end def on_stop_listener(event) stop_listener end def on_listener_started(event) @server_sig = event.data end def on_listener_stopped(event) @server_sig = nil end def shutdown_handler(event) stop_listener if @server_sig end def start_listener return if @server_sig ::EM.schedule do sig = ::EM.start_server(@ip, @port, @actor_class.proxy_class, @actor_class, { :logger => @logger }) enqueue(:listener_started, sig) end end def stop_listener return unless @server_sig sig = @server_sig ::EM.schedule do ::EM.stop_server(sig) enqueue(:listener_stopped) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
tribe_em-0.0.4 | lib/tribe_em/tcp_server.rb |
tribe_em-0.0.3 | lib/tribe_em/tcp_server.rb |