## org.red5.server.api
Interface IClient

All Superinterfaces:
  AttributeStoreMBean, ClientMBean, IAttributeStore

All Known Implementing Classes:
  Client

    public interface IClient

extends ClientMBean, IAttributeStore

The client object represents a single client. One client may have multiple connections to different scopes on the same host. In some ways the client object is like a HTTP session. You can create IClient objects with `IClientRegistry.newClient(Object[])` NOTE: I removed session, since client serves the same purpose as a client with attributes

Author:
  The Red5 Project (red5@osflash.org), Luke Hubbard (luke@codegent.com)

Field Summary
`static String` `ID` The key used to store the client object in a http session.

Method Summary
`void` `disconnect()` Closes all the connections.
`Set<IConnection>` `getConnections()` Get a set of connections.
`Set<IConnection>` `getConnections(IScope scope)` Get a set of connections of a given scope.
`long` `getCreationTime()` Get the creation time for this client object.
`String` `getId()` Get the unique ID for this client.
`Collection<String>` `getPermissions(IConnection conn)` Return the permissions in a given context.
`Collection<IScope>` `getScopes()` Get a set of scopes the client is connected to.
`boolean` `hasPermission(IConnection conn, String permissionName)` Check if the client has a permission in the given context.
`void` `setId(String id)` Sets the clients id
`void` `setPermissions(IConnection conn, Collection<String> permissions)` Set the permissions for this client in a given context.

Methods inherited from interface org.red5.server.api.IAttributeStore
`getAttribute, getAttribute, getAttributeNames, getAttributes, hasAttribute, removeAttribute, removeAttributes, setAttribute, setAttributes, setAttributes`

Field Detail

### ID

    static final String ID

  The key used to store the client object in a http session.

  See Also:
    Constant Field Values

Method Detail

### setId

    void setId(String id)

  Sets the clients id

  Parameters:
    `id` - client id

### getId

    String getId()

  Get the unique ID for this client. This will be generated by the server if not passed upon connection from client-side Flex/Flash app. To assign a custom ID to the client use `params` object of `IApplication.appConnect(IConnection, Object[])` method, that contains 2nd all the rest values you pass to `NetConnection.connect` method. Example: At client side: `NetConnection.connect( "http://localhost/killerapp/", "user123" );` then at server side: `public boolean appConnect( IConnection connection, Object[] params ){
  try { connection.getClient().setId( (String) params[0] ); } catch(Exception e){
  log.error("{}", e); } }`

  Specified by:
    `getId` in interface `ClientMBean`
  Returns:
    client id

### getCreationTime

    long getCreationTime()

  Get the creation time for this client object.

  Specified by:
    `getCreationTime` in interface `ClientMBean`
  Returns:
    Creation time in milliseconds

### getScopes

    Collection<IScope> getScopes()

  Get a set of scopes the client is connected to.

  Specified by:
    `getScopes` in interface `ClientMBean`
  Returns:
    Set of scopes

### getConnections

    Set<IConnection> getConnections()

  Get a set of connections.

  Specified by:
    `getConnections` in interface `ClientMBean`
  Returns:
    Set of connections

### getConnections

    Set<IConnection> getConnections(IScope scope)

  Get a set of connections of a given scope.

  Parameters:
    `scope` - scope to get connections for
  Returns:
    Set of connections to the passed scope

### disconnect

    void disconnect()

  Closes all the connections.

  Specified by:
    `disconnect` in interface `ClientMBean`

### setPermissions

    void setPermissions(IConnection conn,
                        Collection<String> permissions)

  Set the permissions for this client in a given context.

  Parameters:
    `conn` - Connection specifying the context to set the permissions for.
    `permissions` - Permissions the client has in this context or `null` for no permissions.

### getPermissions

    Collection<String> getPermissions(IConnection conn)

  Return the permissions in a given context.

  Parameters:
    `conn` - Connection specifying the context to get the permissions for.
  Returns:
    Permission names.

### hasPermission

    boolean hasPermission(IConnection conn,
                          String permissionName)

  Check if the client has a permission in the given context.

  Parameters:
    `conn` - Connection specifying the context to check the permissions for.
    `permissionName` - Name of the permission to check.
  Returns:
    `true` if the client has the permission, otherwise `false`

Copyright © 2006-2010 The Red5 Project