Pongd fixed.
This commit is contained in:
parent
dd9f94ae78
commit
17048dbd45
@ -2,21 +2,23 @@ require "option_parser"
|
|||||||
require "../src/ipc.cr"
|
require "../src/ipc.cr"
|
||||||
require "./prints.cr"
|
require "./prints.cr"
|
||||||
|
|
||||||
verbosity = 1
|
class CLI
|
||||||
service_name = "pong"
|
class_property service_name = "pong"
|
||||||
no_response = false
|
class_property verbosity = 1
|
||||||
|
class_property no_response = false
|
||||||
|
end
|
||||||
|
|
||||||
OptionParser.parse do |parser|
|
OptionParser.parse do |parser|
|
||||||
parser.on "-s service_name", "--service-name service_name", "URI" do |optsn|
|
parser.on "-s service_name", "--service-name service_name", "URI" do |optsn|
|
||||||
service_name = optsn
|
CLI.service_name = optsn
|
||||||
end
|
end
|
||||||
|
|
||||||
parser.on "-n", "--no-response", "Do not provide any response back." do
|
parser.on "-n", "--no-response", "Do not provide any response back." do
|
||||||
no_response = true
|
CLI.no_response = true
|
||||||
end
|
end
|
||||||
|
|
||||||
parser.on "-v verbosity", "--verbosity verbosity", "Verbosity (0 = nothing is printed, 1 = only events, 2 = events and messages). Default: 1" do |optsn|
|
parser.on "-v verbosity", "--verbosity verbosity", "Verbosity (0 = nothing is printed, 1 = only events, 2 = events and messages). Default: 1" do |optsn|
|
||||||
verbosity = optsn.to_i
|
CLI.verbosity = optsn.to_i
|
||||||
end
|
end
|
||||||
|
|
||||||
parser.on "-h", "--help", "Show this help" do
|
parser.on "-h", "--help", "Show this help" do
|
||||||
@ -25,42 +27,45 @@ OptionParser.parse do |parser|
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
service = IPC::Server.new (service_name)
|
def main
|
||||||
service.base_timer = 30_000 # 30 seconds
|
service = IPC::Server.new CLI.service_name
|
||||||
service.timer = 30_000 # 30 seconds
|
service.base_timer = 30_000 # 30 seconds
|
||||||
|
service.timer = 30_000 # 30 seconds
|
||||||
|
|
||||||
service.loop do |event|
|
service.loop do |event|
|
||||||
case event
|
case event
|
||||||
when IPC::Event::Timer
|
when IPC::Event::Timer
|
||||||
info "IPC::Event::Timer"
|
info "IPC::Event::Timer"
|
||||||
when IPC::Event::Connection
|
when IPC::Event::Connection
|
||||||
info "IPC::Event::Connection, client: #{event.fd}"
|
info "IPC::Event::Connection, client: #{event.fd}"
|
||||||
when IPC::Event::Disconnection
|
when IPC::Event::Disconnection
|
||||||
info "IPC::Event::Disconnection, client: #{event.fd}"
|
info "IPC::Event::Disconnection, client: #{event.fd}"
|
||||||
when IPC::Event::MessageSent
|
when IPC::Event::MessageSent
|
||||||
begin
|
begin
|
||||||
if verbosity >= 1
|
info "IPC::Event::MessageSent, client: #{event.fd}"
|
||||||
puts "#{CGREEN}IPC::Event::MessageSent#{CRESET}, client: #{event.fd}"
|
rescue e
|
||||||
end
|
important "#{e.message}"
|
||||||
rescue e
|
service.remove_fd event.fd
|
||||||
puts "#{CRED}#{e.message}#{CRESET}"
|
|
||||||
service.remove_fd event.fd
|
|
||||||
end
|
|
||||||
when IPC::Event::MessageReceived
|
|
||||||
begin
|
|
||||||
info "IPC::Event::MessageReceived, client: #{event.fd}"
|
|
||||||
m = String.new event.message.payload
|
|
||||||
debug "message type #{event.message.utype}: #{m}"
|
|
||||||
unless no_response
|
|
||||||
service.send event.message
|
|
||||||
debug "sending message..."
|
|
||||||
end
|
end
|
||||||
|
when IPC::Event::MessageReceived
|
||||||
|
begin
|
||||||
|
info "IPC::Event::MessageReceived, client: #{event.fd}"
|
||||||
|
m = String.new event.message.payload
|
||||||
|
debug "message type #{event.message.utype}: #{m}"
|
||||||
|
|
||||||
rescue e
|
unless CLI.no_response
|
||||||
important "#{e.message}"
|
service.send event.message
|
||||||
service.remove_fd event.fd
|
debug "sending message..."
|
||||||
|
end
|
||||||
|
|
||||||
|
rescue e
|
||||||
|
important "#{e.message}"
|
||||||
|
service.remove_fd event.fd
|
||||||
|
end
|
||||||
|
else
|
||||||
|
important "Exception: message #{event}"
|
||||||
end
|
end
|
||||||
else
|
|
||||||
important "Exception: message #{event}"
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
main
|
||||||
|
Reference in New Issue
Block a user