Sha256: dcb2ab32a6236645bb4389479708dd9e2fe20d106bf8e33d98e974b52cc69d54

Contents?: true

Size: 704 Bytes

Versions: 129

Compression:

Stored size: 704 Bytes

Contents

#!/usr/bin/env ruby

require 'rubygems' # or use Bundler.setup
require 'eventmachine'

class SimpleChatServer < EM::Connection

  @@connected_clients = Array.new


  #
  # EventMachine handlers
  #

  def post_init
    @@connected_clients.push(self)
    puts "A client has connected..."
  end

  def unbind
    @@connected_clients.delete(self)
    puts "A client has left..."
  end




  #
  # Helpers
  #

  def other_peers
    @@connected_clients.reject { |c| self == c }
  end # other_peers
end

EventMachine.run do
  # hit Control + C to stop
  Signal.trap("INT")  { EventMachine.stop }
  Signal.trap("TERM") { EventMachine.stop }

  EventMachine.start_server("0.0.0.0", 10000, SimpleChatServer)
end

Version data entries

129 entries across 126 versions & 10 rubygems

Version Path
devcycle-ruby-server-sdk-1.1.0 examples/sinatra/vendor/bundle/ruby/2.6.0/gems/eventmachine-1.2.7/examples/guides/getting_started/05_simple_chat_server_step_two.rb
devcycle-ruby-server-sdk-1.1.0 examples/sinatra/vendor/bundle/ruby/3.1.0/gems/eventmachine-1.2.7/examples/guides/getting_started/05_simple_chat_server_step_two.rb
devcycle-ruby-server-sdk-1.1.0 examples/sinatra/vendor/bundle/ruby/3.0.0/gems/eventmachine-1.2.7/examples/guides/getting_started/05_simple_chat_server_step_two.rb
eventmachine-mkroman-1.3.0.dev.1 examples/guides/getting_started/05_simple_chat_server_step_two.rb
wj_eventmachine-1.3.2 examples/guides/getting_started/05_simple_chat_server_step_two.rb
wj_eventmachine-1.3.1 examples/guides/getting_started/05_simple_chat_server_step_two.rb
wj_eventmachine-1.3.0.dev.1 examples/guides/getting_started/05_simple_chat_server_step_two.rb
sensu-em-2.7.0-java examples/guides/getting_started/05_simple_chat_server_step_two.rb
eventmachine-1.2.7-java examples/guides/getting_started/05_simple_chat_server_step_two.rb
eventmachine-1.2.7-x64-mingw32 examples/guides/getting_started/05_simple_chat_server_step_two.rb
eventmachine-1.2.7-x86-mingw32 examples/guides/getting_started/05_simple_chat_server_step_two.rb
eventmachine-1.2.7 examples/guides/getting_started/05_simple_chat_server_step_two.rb
eventmachine-1.2.6-x64-mingw32 examples/guides/getting_started/05_simple_chat_server_step_two.rb
eventmachine-1.2.6-x86-mingw32 examples/guides/getting_started/05_simple_chat_server_step_two.rb
eventmachine-1.2.6-java examples/guides/getting_started/05_simple_chat_server_step_two.rb
eventmachine-1.2.6 examples/guides/getting_started/05_simple_chat_server_step_two.rb
eventmachine-1.2.5-x86-mingw32 examples/guides/getting_started/05_simple_chat_server_step_two.rb
eventmachine-1.2.5-x64-mingw32 examples/guides/getting_started/05_simple_chat_server_step_two.rb
eventmachine-1.2.5-java examples/guides/getting_started/05_simple_chat_server_step_two.rb
eventmachine-1.2.5 examples/guides/getting_started/05_simple_chat_server_step_two.rb