Async::WebSocket SourceAsyncWebSocketClient

class Client

This is a basic synchronous websocket client:

Nested

Definitions

def self.open(endpoint, **options, &block)

Implementation

def self.open(endpoint, **options, &block)
	client = self.new(HTTP::Client.new(endpoint, **options), mask: true)
	
	return client unless block_given?
	
	begin
		yield client
	ensure
		client.close
	end
end

def self.connect(endpoint, *arguments, **options, &block)

Implementation

def self.connect(endpoint, *arguments, **options, &block)
	client = self.open(endpoint, *arguments)
	connection = client.connect(endpoint.authority, endpoint.path, **options)
	
	return ClientCloseDecorator.new(client, connection) unless block_given?
	
	begin
		yield connection
	ensure
		connection.close
		client.close
	end
end