lib/kafkr/log.rb in kafkr-0.13.0 vs lib/kafkr/log.rb in kafkr-0.18.0

- old
+ new

@@ -33,31 +33,32 @@ end @broker.add_subscriber(client) Thread.new do - loop do - encrypted_message = client.gets - if encrypted_message.nil? - @broker.last_sent.delete(client) - client.close - @broker.subscribers.delete(client) - puts "Client connection closed. Removed from subscribers list." - break - else - decryptor = Kafkr::Encryptor.new - message = decryptor.decrypt(encrypted_message.chomp) # Decrypt the message here - uuid, message_content = extract_uuid(message) - if uuid && message_content - @broker.broadcast(message_content) + + + begin + + loop do + encrypted_message = client.gets + if encrypted_message.nil? + @broker.last_sent.delete(client) + client.close + @broker.subscribers.delete(client) + break else - puts "Received invalid message format: #{message}" + decryptor = Kafkr::Encryptor.new + message = decryptor.decrypt(encrypted_message.chomp) # Decrypt the message here + uuid, message_content = extract_uuid(message) + @broker.broadcast(message_content) end - end - rescue Errno::ECONNRESET - puts "Connection reset by client. Closing connection..." - client.close + rescue Errno::ECONNRESET + client.close + end + rescue StandardError => exception + #TODO we need to find the place for a global exception handler end end end end @@ -69,12 +70,13 @@ def extract_uuid(message) # Check if message is valid JSON begin message = JSON.parse(message) + Kafkr.log ">> #{message}" return message["uuid"], message rescue JSON::ParserError => e - puts "Received invalid message format: #{message}" + Kafkr.log ">> #{message}" match_data = /^(\w{8}-\w{4}-\w{4}-\w{4}-\w{12}): (.+)$/.match(message) match_data ? [match_data[1], match_data[2]] : [nil, nil] end end end