Class: Celluloid::WebSocket::MessageStream

Inherits:
Object
  • Object
show all
Defined in:
lib/celluloid/websocket.rb

Constant Summary collapse

BUFFER_SIZE =
16384

Instance Method Summary collapse

Constructor Details

#initialize(socket, driver) ⇒ MessageStream

Returns a new instance of MessageStream.



91
92
93
94
95
96
97
98
99
# File 'lib/celluloid/websocket.rb', line 91

def initialize(socket, driver)
	@socket = socket
	@driver = driver
	@message_buffer = []

	@driver.on :message do |message|
		@message_buffer.push(message.data)
	end
end

Instance Method Details

#readObject



101
102
103
104
105
106
107
# File 'lib/celluloid/websocket.rb', line 101

def read
	while @message_buffer.empty?
		buffer = @socket.readpartial(BUFFER_SIZE)
		@driver.parse(buffer)
	end
	@message_buffer.shift
end