Sha256: ea0415c46de2aa41e64650dece1bd83b2fd430cfcccf5e42652c35fc4e68b6c6

Contents?: true

Size: 698 Bytes

Versions: 1

Compression:

Stored size: 698 Bytes

Contents

#!/usr/bin/env ruby

require 'async'
require 'async/io/stream'
require 'async/http/url_endpoint'
require_relative '../../lib/async/websocket/client'

USER = ARGV.pop || "anonymous"
URL = ARGV.pop || "http://127.0.0.1:8080"
ENDPOINT = Async::HTTP::URLEndpoint.parse(URL)

Async do |task|
	stdin = Async::IO::Stream.new(
		Async::IO::Generic.new($stdin)
	)
	
	Async::WebSocket::Client.open(ENDPOINT) do |connection|
		input_task = task.async do
			while line = stdin.read_until("\n")
				connection.send_message({text: line})
				connection.flush
			end
		end
		
		puts "Connected..."
		while message = connection.next_message
			puts "> #{message.inspect}"
		end
	ensure
		input_task&.stop
	end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
async-websocket-0.9.0 examples/chat/client.rb