def read_and_callback(socket)
      request = @service_type.request_class.new
      response = @service_type.response_class.new
      data = read_all(socket)
      @byte_received += data.length
      request.deserialize(data)
      result = @callback.call(request, response)
      if result
        send_ok_byte(socket)
        data = write_msg(socket, response)
        @byte_sent += data.length
      else
        send_ng_byte(socket)
        write_header(socket, build_header)
        # write some message
      end
      result
    end
def read_and_callback(socket)
      request = @service_type.request_class.new
      response = @service_type.response_class.new
      data = read_all(socket)
      @byte_received += data.length
      request.deserialize(data)
      result = @callback.call(request, response)
      if result
        send_ok_byte(socket)
        data = write_msg(socket, response)
        @byte_sent += data.length
      else
        send_ng_byte(socket)
        write_header(socket, build_header)
        # write some message
      end
      result
    end
main loop of this connection.
 read data and do callback.
 @param [IO] socket
 @return [Boolean] result of callback