def push(type, payload, target, options = {})
      params = {
        :type => type,
        :payload => payload,
        :target => target }
      make_request(:post, "/push", params, type.split("/")[2], options)
    end
def push(type, payload, target, options = {})
      params = {
        :type => type,
        :payload => payload,
        :target => target }
      make_request(:post, "/push", params, type.split("/")[2], options)
    end
Create RightNet router client

 @param [AuthClient] auth_client providing authorization session for HTTP requests

 @option options [Numeric] :open_timeout maximum wait for connection; defaults to DEFAULT_OPEN_TIMEOUT
 @option options [Numeric] :request_timeout maximum wait for response; defaults to DEFAULT_REQUEST_TIMEOUT
 @option options [Numeric] :listen_timeout maximum wait for event; defaults to DEFAULT_LISTEN_TIMEOUT
 @option options [Boolean] :long_polling_only never attempt to create a WebSocket, always long-polling instead
 @option options [Numeric] :retry_timeout maximum before stop retrying; defaults to DEFAULT_RETRY_TIMEOUT
 @option options [Array] :retry_intervals between successive retries; defaults to DEFAULT_RETRY_INTERVALS
 @option options [Boolean] :retry_enabled for requests that fail to connect or that return a retry result
 @option options [Numeric] :reconnect_interval for reconnect attempts after lose connectivity
 @option options [Boolean] :non_blocking i/o is to be used for HTTP requests by applying
   EM::HttpRequest and fibers instead of RestClient; requests remain synchronous
 @option options [Array] :filter_params symbols or strings for names of request parameters whose
   values are to be hidden when logging; also applied to contents of any parameters named :payload

 @raise [ArgumentError] auth client does not support this client type
 Route a request to a single target or multiple targets with no response expected
 Persist the request en route to reduce the chance of it being lost at the expense of some
 additional network overhead
 Enqueue the request if the target is not currently available
 Never automatically retry the request if there is the possibility of it being duplicated
 Set time-to-live to be forever

 @param [String] type of request as path specifying actor and action
 @param [Hash, NilClass] payload for request
 @param [Hash, NilClass] target for request, which may be a specific agent (using :agent_id),
   potentially multiple targets (using :tags, :scope, :selector), or nil to route solely
   using type:
   [String] :agent_id serialized identity of specific target
   [Array] :tags that must all be associated with a target for it to be selected
   [Hash] :scope for restricting routing which may contain:
     [Integer] :account id that agents must be associated with to be included
     [Integer] :shard id that agents must be in to be included, or if value is
       Packet::GLOBAL, ones with no shard id
   [Symbol] :selector for picking from qualified targets: :any or :all;
     defaults to :any

 @option options [String] :request_uuid uniquely identifying this request; defaults to
   randomly generated
 @option options [Numeric] :time_to_live seconds before request expires and is to be ignored;
   non-positive value or nil means never expire

 @return [NilClass] always nil since there is no expected response to the request

 @raise [Exceptions::Unauthorized] authorization failed
 @raise [Exceptions::ConnectivityFailure] cannot connect to server, lost connection
   to it, or it is out of service or too busy to respond
 @raise [Exceptions::RetryableError] request failed but if retried may succeed
 @raise [Exceptions::Terminating] closing client and terminating service
 @raise [Exceptions::InternalServerError] internal error in server being accessed