lib/netsoul/client.rb in netsoul-2.3.8 vs lib/netsoul/client.rb in netsoul-2.4.1

- old
+ new

@@ -3,11 +3,10 @@ require_relative '../netsoul' require 'socket' module Netsoul class Client - include Logging attr_reader :started SOCKET_READ_TIMEOUT = 12 * 60 SOCKET_WRITE_TIMEOUT = 1 * 60 def initialize(*args) @@ -53,39 +52,37 @@ @started = true end def disconnect send(Message.ns_exit) - ensure close + ensure + @started = false end def send(str) _, sock = IO.select(nil, [@socket], nil, SOCKET_WRITE_TIMEOUT) - raise Netsoul::SocketError, 'Timeout or raise on write socket'.freeze if sock.nil? || sock.empty? s = sock.first - if s - s.puts str - s.flush - end - log :info, "[send] #{str.chomp}" + raise Netsoul::SocketError, 'Timeout or raise on write socket'.freeze unless s + s.puts str + s.flush end def get sock, = IO.select([@socket], nil, nil, SOCKET_READ_TIMEOUT) - raise Netsoul::SocketError, 'Timeout or raise on read socket'.freeze if sock.nil? || sock.empty? - res = sock.first.gets - if res - log :info, "[get ] #{res.chomp}" + s = sock.first + raise Netsoul::SocketError, 'Timeout or raise on read socket'.freeze unless s + res = s.gets.chomp + if !res.empty? res else 'nothing'.freeze # Send some string and permit IO.select to thrown exception if something goes wrong. end end + private + def close @socket.close if @socket - ensure - @started = false end end end