further fixes for websockets
This commit is contained in:
parent
3f7bde8d30
commit
582b0c1341
|
@ -24,28 +24,6 @@ module Landline
|
||||||
@__listeners[event]&.delete(listener)
|
@__listeners[event]&.delete(listener)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Await for an event
|
|
||||||
# @param event [Symbol, Array<Symbol>] event or array of events to wait for
|
|
||||||
# @return [Array]
|
|
||||||
# @sg-ignore
|
|
||||||
def await(event)
|
|
||||||
blocking = true
|
|
||||||
output = nil
|
|
||||||
listener = proc do |*data|
|
|
||||||
output = data
|
|
||||||
blocking = false
|
|
||||||
end
|
|
||||||
if event.is_a? Array
|
|
||||||
event.each { |x| on(x, &listener) }
|
|
||||||
else
|
|
||||||
on(event, &listener)
|
|
||||||
end
|
|
||||||
while blocking; end
|
|
||||||
return output[0] if output.is_a? Array and output.length == 1
|
|
||||||
|
|
||||||
output
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
# Trigger the queue clearing process
|
# Trigger the queue clearing process
|
||||||
|
@ -115,6 +93,7 @@ module Landline
|
||||||
rescue Errno::EPIPE => e
|
rescue Errno::EPIPE => e
|
||||||
_emit :error, e
|
_emit :error, e
|
||||||
close
|
close
|
||||||
|
nil
|
||||||
end
|
end
|
||||||
|
|
||||||
# Read data from socket synchronously
|
# Read data from socket synchronously
|
||||||
|
@ -225,6 +204,7 @@ module Landline
|
||||||
rescue Errno::ECONNRESET => e
|
rescue Errno::ECONNRESET => e
|
||||||
_emit :error, e
|
_emit :error, e
|
||||||
close
|
close
|
||||||
|
nil
|
||||||
end
|
end
|
||||||
|
|
||||||
# Receive data through websocket asynchronously
|
# Receive data through websocket asynchronously
|
||||||
|
@ -238,6 +218,7 @@ module Landline
|
||||||
rescue Errno::ECONNRESET => e
|
rescue Errno::ECONNRESET => e
|
||||||
_emit :error, e
|
_emit :error, e
|
||||||
close
|
close
|
||||||
|
nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue