websocketd/tests/pong.cr

73 lines
1.3 KiB
Crystal

require "option_parser"
require "./test-ws"
uri = "ws://localhost:1234/pong.JSON"
rounds = 5
OptionParser.parse do |parser|
parser.on "-r rounds", "--rounds rounds", "Rounds" do |r|
rounds = r.to_i
end
parser.on "-u uri", "--uri uri", "URI" do |opturi|
uri = opturi
end
parser.on "-h", "--help", "Show this help" do
puts parser
exit 0
end
end
def multiple_messages_and_responses(tws : TestWS, data)
tws.send 1, data
tws.send 2, data
tws.send 3, data
tws.send 4, data
tws.send 5, data
response = tws.read
puts "1. received a message: #{response}"
pp! response
response = tws.read
puts "2. received a message: #{response}"
pp! response
response = tws.read
puts "3. received a message: #{response}"
pp! response
response = tws.read
puts "4. received a message: #{response}"
pp! response
response = tws.read
puts "5. received a message: #{response}"
pp! response
end
def single_message_and_response(tws : TestWS, data)
tws.send 1, data
response = tws.read
pp! response
end
begin
tws = TestWS.new uri
# puts "connection done: sending pong"
data = STDIN.gets_to_end
data = data.chomp
rounds.times do |i|
single_message_and_response tws, "#{data} #{i}"
end
# puts "closing the connection"
tws.close
tws.read
rescue e
puts "Exception: #{e}"
end