Sha256: dd387f75a711d378b1affa95c1bef32c71a64e36c1b4636d544cca13d0a0e294

Contents?: true

Size: 1.15 KB

Versions: 29

Compression:

Stored size: 1.15 KB

Contents

#!/usr/bin/env ruby

Thread.abort_on_exception = true

require 'faye/websocket'
require 'eventmachine'
require_relative './benchmark'

run_benchmark do |url, **options|
  send_thread = nil
  reader = BenchmarkReader.new

  EM.run {
    ws = Faye::WebSocket::Client.new(url)

    ws.on :open do |event|
      $logger.info "open"

      send_thread = Thread.new {
        send_stats = benchmark_sender(**options) do |msg, seq|
          EM.next_tick {
            $logger.debug "send seq=%d" % [seq]
            ws.send(msg)
          }
        end

        EM.next_tick {
          $logger.info "close..."
          ws.close()
        }

        send_stats
      }

      reader.start()
    end

    read = 0

    ws.on :message do |event|
      seq, rtt = reader.on_message(Time.now, event.data)

      $logger.debug "read %d: seq=%d rtt=%.2f" % [read, seq, rtt]

      read += 1
    end

    ws.on :close do |event|
      $logger.info "closed"

      reader.stop
      EM.stop
    end

    ws.on :error do |event|
      $logger.warn "error: #{event}"

      exit 1
    end
  }

  read_stats = reader.stop()
  send_stats = send_thread.value

  next send_stats, read_stats
end

Version data entries

29 entries across 29 versions & 2 rubygems

Version Path
kinetic_sdk-5.0.19 gems/kontena-websocket-client-0.1.1/benchmark/benchmark-em.rb
kinetic_sdk-5.0.18 gems/kontena-websocket-client-0.1.1/benchmark/benchmark-em.rb
kinetic_sdk-5.0.17 gems/kontena-websocket-client-0.1.1/benchmark/benchmark-em.rb
kinetic_sdk-5.0.16 gems/kontena-websocket-client-0.1.1/benchmark/benchmark-em.rb
kinetic_sdk-5.0.15 gems/kontena-websocket-client-0.1.1/benchmark/benchmark-em.rb
kinetic_sdk-5.0.14 gems/kontena-websocket-client-0.1.1/benchmark/benchmark-em.rb
kinetic_sdk-5.0.13 gems/kontena-websocket-client-0.1.1/benchmark/benchmark-em.rb
kinetic_sdk-5.0.12 gems/kontena-websocket-client-0.1.1/benchmark/benchmark-em.rb
kinetic_sdk-5.0.11 gems/kontena-websocket-client-0.1.1/benchmark/benchmark-em.rb
kinetic_sdk-5.0.10 gems/kontena-websocket-client-0.1.1/benchmark/benchmark-em.rb
kinetic_sdk-5.0.9 gems/kontena-websocket-client-0.1.1/benchmark/benchmark-em.rb
kinetic_sdk-5.0.8 gems/kontena-websocket-client-0.1.1/benchmark/benchmark-em.rb
kinetic_sdk-5.0.7 gems/kontena-websocket-client-0.1.1/benchmark/benchmark-em.rb
kinetic_sdk-5.0.6 gems/kontena-websocket-client-0.1.1/benchmark/benchmark-em.rb
kinetic_sdk-5.0.5 gems/kontena-websocket-client-0.1.1/benchmark/benchmark-em.rb
kinetic_sdk-5.0.4 gems/kontena-websocket-client-0.1.1/benchmark/benchmark-em.rb
kinetic_sdk-5.0.3 gems/kontena-websocket-client-0.1.1/benchmark/benchmark-em.rb
kinetic_sdk-5.0.2 gems/kontena-websocket-client-0.1.1/benchmark/benchmark-em.rb
kinetic_sdk-5.0.2.beta.4 gems/kontena-websocket-client-0.1.1/benchmark/benchmark-em.rb
kinetic_sdk-5.0.2.beta.3 gems/kontena-websocket-client-0.1.1/benchmark/benchmark-em.rb