org.red5.server.api
Interface IConnection

All Superinterfaces:
AttributeStoreMXBean, IAttributeStore, ICastingAttributeStore, ICoreObject, IEventDispatcher, IEventHandler, IEventListener
All Known Subinterfaces:
IRemotingConnection, IServiceCapableConnection, IStreamCapableConnection
All Known Implementing Classes:
BaseConnection, BaseRTMPTConnection, RemotingConnection, RTMPConnection, RTMPMinaConnection, RTMPTConnection

public interface IConnection
extends ICoreObject, ICastingAttributeStore

The connection object. Each connection has an associated client and scope. Connections may be persistent, polling, or transient. The aim of this interface is to provide basic connection methods shared between different types of connections Future subclasses: RTMPConnection, RemotingConnection, AJAXConnection, HttpConnection, etc

Author:
The Red5 Project ([email protected]), Luke Hubbard ([email protected])

Nested Class Summary
static class IConnection.Encoding
          AMF version types, either AMF0 or AMF3.
 
Field Summary
static String PERSISTENT
          Persistent connection type, eg RTMP.
static String POLLING
          Polling connection type, eg RTMPT.
static String TRANSIENT
          Transient connection type, eg Remoting, HTTP, etc.
 
Method Summary
 void addListener(IConnectionListener listener)
          Adds a listener to this object
 void close()
          Close this connection.
 boolean connect(IScope scope)
          Try to connect to the scope.
 boolean connect(IScope scope, Object[] params)
          Try to connect to the scope with a list of connection parameters.
 Iterator<IBasicScope> getBasicScopes()
          Get the basic scopes this connection has subscribed.
 IClient getClient()
          Get the client object associated with this connection.
 long getClientBytesRead()
          Return number of written bytes the client reports to have received.
 Map<String,Object> getConnectParams()
          Return the parameters that were given in the call to "connect".
 long getDroppedMessages()
          Total number of messages that have been dropped.
 IConnection.Encoding getEncoding()
          Get the object encoding (AMF version) for this connection.
 String getHost()
          Get the hostname that the client is connected to.
 int getLastPingTime()
          Return roundtrip time of last ping command.
 String getPath()
          Get the path for this connection.
 long getPendingMessages()
          Total number of messages that are pending to be sent to the connection.
 long getReadBytes()
          Total number of bytes read from the connection.
 long getReadMessages()
          Total number of messages read from the connection.
 String getRemoteAddress()
          Get the IP address the client is connected from.
 List<String> getRemoteAddresses()
          Get the IP addresses the client is connected from.
 int getRemotePort()
          Get the port the client is connected from.
 IScope getScope()
          Get the scope this is connected to.
 String getSessionId()
          Get the session id, this may be null.
 String getType()
          Get the connection type.
 long getWrittenBytes()
          Total number of bytes written to the connection.
 long getWrittenMessages()
          Total number of messages written to the connection.
 void initialize(IClient client)
          Initialize the connection.
 boolean isConnected()
          Is the client connected to the scope.
 void ping()
          Start measuring the roundtrip time for a packet on the connection.
 void removeListener(IConnectionListener listener)
          Removes the listener from this object
 void setBandwidth(int mbits)
          Sets the bandwidth using a mbit/s value.
 
Methods inherited from interface org.red5.server.api.event.IEventDispatcher
dispatchEvent
 
Methods inherited from interface org.red5.server.api.event.IEventHandler
handleEvent
 
Methods inherited from interface org.red5.server.api.event.IEventListener
notifyEvent
 
Methods inherited from interface org.red5.server.api.ICastingAttributeStore
getBoolAttribute, getByteAttribute, getDoubleAttribute, getIntAttribute, getListAttribute, getLongAttribute, getMapAttribute, getSetAttribute, getShortAttribute, getStringAttribute
 
Methods inherited from interface org.red5.server.api.IAttributeStore
getAttribute, getAttribute, getAttributeNames, getAttributes, hasAttribute, removeAttribute, removeAttributes, setAttribute, setAttributes, setAttributes, size
 

Field Detail

PERSISTENT

static final String PERSISTENT
Persistent connection type, eg RTMP.

See Also:
Constant Field Values

POLLING

static final String POLLING
Polling connection type, eg RTMPT.

See Also:
Constant Field Values

TRANSIENT

static final String TRANSIENT
Transient connection type, eg Remoting, HTTP, etc.

See Also:
Constant Field Values
Method Detail

getType

String getType()
Get the connection type.

Returns:
string containing one of connection types

getEncoding

IConnection.Encoding getEncoding()
Get the object encoding (AMF version) for this connection.

Returns:
the used encoding.

initialize

void initialize(IClient client)
Initialize the connection.

Parameters:
client - Client object associated with connection

connect

boolean connect(IScope scope)
Try to connect to the scope.

Parameters:
scope - Scope object
Returns:
true on success, false otherwise

connect

boolean connect(IScope scope,
                Object[] params)
Try to connect to the scope with a list of connection parameters.

Parameters:
params - Connections parameters
scope - Scope object
Returns:
true on success, false otherwise

isConnected

boolean isConnected()
Is the client connected to the scope. Result depends on connection type, true for persistent and polling connections, false for transient.

Returns:
true if the connection is persistent or polling, otherwise false

close

void close()
Close this connection. This will disconnect the client from the associated scope.


getConnectParams

Map<String,Object> getConnectParams()
Return the parameters that were given in the call to "connect".

Returns:
Connection parameters passed from client-side (Flex/Flash application)

getClient

IClient getClient()
Get the client object associated with this connection.

Returns:
Client object

getHost

String getHost()
Get the hostname that the client is connected to. If they are connected to an IP, the IP address will be returned as a String.

Returns:
String containing the hostname

getRemoteAddress

String getRemoteAddress()
Get the IP address the client is connected from.

Returns:
The IP address of the client

getRemoteAddresses

List<String> getRemoteAddresses()
Get the IP addresses the client is connected from. If a client is connected through RTMPT and uses a proxy to connect, this will contain all hosts the client used to connect to the server.

Returns:
The IP addresses of the client

getRemotePort

int getRemotePort()
Get the port the client is connected from.

Returns:
The port of the client

getPath

String getPath()
Get the path for this connection. This is not updated if you switch scope.

Returns:
path Connection path

getSessionId

String getSessionId()
Get the session id, this may be null.

Returns:
Session id

getReadBytes

long getReadBytes()
Total number of bytes read from the connection.

Returns:
Number of read bytes

getWrittenBytes

long getWrittenBytes()
Total number of bytes written to the connection.

Returns:
Number of written bytes

getReadMessages

long getReadMessages()
Total number of messages read from the connection.

Returns:
Number of read messages

getWrittenMessages

long getWrittenMessages()
Total number of messages written to the connection.

Returns:
Number of written messages

getDroppedMessages

long getDroppedMessages()
Total number of messages that have been dropped.

Returns:
Number of dropped messages

getPendingMessages

long getPendingMessages()
Total number of messages that are pending to be sent to the connection.

Returns:
Number of pending messages

getClientBytesRead

long getClientBytesRead()
Return number of written bytes the client reports to have received. This is the last value of the BytesRead message received from a client.

Returns:
number of written bytes received by the client
See Also:
BytesRead

ping

void ping()
Start measuring the roundtrip time for a packet on the connection.


getLastPingTime

int getLastPingTime()
Return roundtrip time of last ping command.

Returns:
roundtrip time in milliseconds

getScope

IScope getScope()
Get the scope this is connected to.

Returns:
The connected scope

getBasicScopes

Iterator<IBasicScope> getBasicScopes()
Get the basic scopes this connection has subscribed. This list will contain the shared objects and broadcast streams the connection connected to.

Returns:
List of basic scopes

setBandwidth

void setBandwidth(int mbits)
Sets the bandwidth using a mbit/s value.

Parameters:
mbits -

addListener

void addListener(IConnectionListener listener)
Adds a listener to this object

Parameters:
listener -

removeListener

void removeListener(IConnectionListener listener)
Removes the listener from this object

Parameters:
listener -


Copyright © 2006-2012 The Red5 Project