Class RemotingClient

java.lang.Object
org.red5.server.net.remoting.RemotingClient
All Implemented Interfaces:
IRemotingClient
Direct Known Subclasses:
DSRemotingClient

public class RemotingClient extends Object implements IRemotingClient
Client interface for remoting calls.
Author:
The Red5 Project, Joachim Bauch (jojo@struktur.de), Paul Gregoire (mondain@gmail.com)
  • Field Details

    • log

      protected static org.slf4j.Logger log
      Constant log
    • DEFAULT_TIMEOUT

      public static final int DEFAULT_TIMEOUT
      Default timeout to use.
      See Also:
    • CONTENT_TYPE

      protected static final String CONTENT_TYPE
      Content MIME type for HTTP requests.
      See Also:
    • client

      protected org.apache.http.client.HttpClient client
      HTTP client for remoting calls.
    • url

      protected String url
      Url to connect to.
    • appendToUrl

      protected String appendToUrl
      Additional string to use while connecting.
    • headers

      protected Map<String,RemotingHeader> headers
      Headers to send to the server.
    • executor

      protected static ExecutorService executor
      Thread pool to use for asynchronous requests.
    • poolSize

      protected int poolSize
      Maximum pool threads
  • Constructor Details

    • RemotingClient

      public RemotingClient()
      Dummy constructor used by the spring configuration.
    • RemotingClient

      public RemotingClient(String url)
      Create new remoting client for the given url.
      Parameters:
      url - URL to connect to
    • RemotingClient

      public RemotingClient(String url, int timeout)
      Create new remoting client for the given url and given timeout.
      Parameters:
      url - URL to connect to
      timeout - Timeout for one request in milliseconds
  • Method Details

    • getPoolSize

      public int getPoolSize()

      Getter for the field poolSize.

      Returns:
      a int
    • setPoolSize

      public void setPoolSize(int poolSize)

      Setter for the field poolSize.

      Parameters:
      poolSize - a int
    • processHeaders

      protected void processHeaders(org.apache.mina.core.buffer.IoBuffer in)
      Process any headers sent in the response.
      Parameters:
      in - Byte buffer with response data
    • setCredentials

      public void setCredentials(String userid, String password)
      Send authentication data with each remoting request.
      Parameters:
      userid - User identifier
      password - Password
    • resetCredentials

      public void resetCredentials()
      Stop sending authentication data.
    • addHeader

      public void addHeader(String name, boolean required, Object value)
      Send an additional header to the server.
      Parameters:
      name - Header name
      required - Header required?
      value - Header body
    • removeHeader

      public void removeHeader(String name)
      Stop sending a given header.
      Parameters:
      name - Header name
    • invokeMethod

      public Object invokeMethod(String method, Object[] params)
      Invoke a method synchronously on the remoting server.
      Specified by:
      invokeMethod in interface IRemotingClient
      Parameters:
      method - Method name
      params - Parameters passed to method
      Returns:
      the result of the method call
    • invokeMethod

      public void invokeMethod(String method, Object[] methodParams, IRemotingCallback callback)
      Invoke a method asynchronously on the remoting server.
      Parameters:
      method - Method name
      methodParams - Parameters passed to method
      callback - Callback