Created
January 7, 2012 00:02
-
-
Save squarism/1573153 to your computer and use it in GitHub Desktop.
eventmachine_skeleton
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Gemfile | |
source "http://rubygems.org" | |
gem 'eventmachine' | |
gem 'em-net-http' | |
gem 'em-http-request', "=1.0.0.beta.4" | |
gem 'em-mysql', "=0.4.2" | |
# server.rb | |
#!/usr/bin/env ruby | |
# echo server | |
require 'eventmachine' | |
class EchoServer < EM::Connection | |
def post_init | |
puts "client connecting" | |
end | |
def unbind | |
puts "client disconnecting" | |
end | |
def receive_data(data) | |
puts "received #{data} from client" | |
send_data ">> #{data}" | |
end | |
end | |
EM.run do | |
EM.start_server('0.0.0.0', 9000, EchoServer) | |
puts "Server running on port 9000" | |
end | |
# client.rb | |
#!/usr/bin/env ruby | |
# simple client | |
require 'eventmachine' | |
class EchoClient < EM::Connection | |
def initialize(user) | |
@user = user | |
end | |
def post_init | |
puts "connected" | |
send_data "Hello from #{@user}" | |
end | |
def unbind | |
puts "disconnected" | |
end | |
def receive_data(data) | |
puts "received #{data}" | |
close_connection | |
EM.stop | |
end | |
end | |
EM.run do | |
EM.connect('localhost', 9000, EchoClient, ARGV[0]) | |
end | |
# $ ./server.rb | |
# $ ./client.rb bob | |
# connected | |
# received >> Hello from bob | |
# disconnected |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment