public
Description: EventMachine based XMPP client
Homepage:
Clone URL: git://github.com/tmm1/xmpp4em.git
xmpp4em / stress_test.rb
100644 31 lines (25 sloc) 0.575 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
require 'xmpp4em'
 
started = Time.now
users = {}
connected = 0
num = Integer(ARGV[0])
num = 1000 if num < 1
 
EM.epoll
 
EM.run{
  num.times do |i|
    p i
    users[i] = XMPP4EM::Client.new("test_#{i}@localhost", 'test', :auto_register => true)
    users[i].on(:login) do
      connected += 1
      p ['connected', i, "#{connected} of #{num}"]
  
      if connected == num
        p ['done', Time.now - started]
        EM.stop_event_loop
      end
    end
    users[i].on(:disconnect) do
      p ['disconnected', i]
    end
  
    users[i].connect('localhost', 5222)
  end
}