class Slack::RealTime::Concurrency::Celluloid::Socket
def build_driver
def build_driver ::WebSocket::Driver.client(self) end
def build_socket
def build_socket socket = TCPSocket.new(addr, port) socket = SSLSocket.new(socket, build_ssl_context) if secure? socket end
def build_ssl_context
def build_ssl_context OpenSSL::SSL::SSLContext.new(:TLSv1_2_client) end
def connect
def connect @socket = build_socket @connected = @socket.connect end
def connect!
- Yieldparam: driver -
def connect! super driver.start future.run_loop end
def connected?
def connected? !@connected.nil? end
def initialize(*args)
def initialize(*args) super @driver = build_driver end
def read
def read buffer = socket.readpartial(BLOCK_SIZE) driver.parse buffer end
def run_loop
def run_loop loop { read } if socket rescue EOFError # connection closed end
def start_async
def start_async future = yield self if block_given? Actor.new(future) end