Skip to content

Instantly share code, notes, and snippets.

@barneywilliams
Created September 20, 2012 14:32
Show Gist options
  • Save barneywilliams/3756286 to your computer and use it in GitHub Desktop.
Save barneywilliams/3756286 to your computer and use it in GitHub Desktop.
JSONSocket - Ruby server class snippet
def initialize
@server = TCPServer.new 19024
end
def start
@server_thread = Thread.new do
@client_thread = Thread.start(@server.accept) do |client|
puts "server: Accepted client connection!"
send_request(client, 'greeting', :message => 'Hello client!')
receive_response(client)
send_request(client, 'shutdown')
receive_response(client)
client.close
end
end
end
...
def send_request(client, command, args={})
data = {'request' => {'command' => command}}
data['request'].merge!(args)
request = JSON.generate(data)
client.print request
if args[:message]
puts "server: >> #{args[:message]}"
end
end
def receive_response(client)
response = client.recv(1024)
data = JSON.parse(response)
if data['response'] && data['response']['message']
puts "server: << #{data['response']['message']}"
end
return data
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment