org.red5.server.api
Interface IConnection

All Superinterfaces:
AttributeStoreMBean, ConnectionMBean, IAttributeStore, ICastingAttributeStore, ICoreObject, IEventDispatcher, IEventHandler, IEventListener
All Known Subinterfaces:
IRemotingConnection, IServiceCapableConnection, IStreamCapableConnection
All Known Implementing Classes:
BaseConnection, BaseRTMPTConnection, EdgeRTMPMinaConnection, RemotingConnection, RTMPConnection, RTMPMinaConnection, RTMPOriginConnection, RTMPTClientConnection, RTMPTConnection

public interface IConnection
extends ConnectionMBean, ICoreObject

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 (red5@osflash.org), Luke Hubbard (luke@codegent.com)

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 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.
 
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
 
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
 

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.

Specified by:
getType in interface ConnectionMBean
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.

Specified by:
initialize in interface ConnectionMBean
Parameters:
client - Client object associated with connection

connect

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

Specified by:
connect in interface ConnectionMBean
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.

Specified by:
connect in interface ConnectionMBean
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.

Specified by:
isConnected in interface ConnectionMBean
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.

Specified by:
close in interface ConnectionMBean

getConnectParams

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

Specified by:
getConnectParams in interface ConnectionMBean
Returns:
Connection parameters passed from client-side (Flex/Flash application)

getClient

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

Specified by:
getClient in interface ConnectionMBean
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.

Specified by:
getHost in interface ConnectionMBean
Returns:
String containing the hostname

getRemoteAddress

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

Specified by:
getRemoteAddress in interface ConnectionMBean
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.

Specified by:
getRemoteAddresses in interface ConnectionMBean
Returns:
The IP addresses of the client

getRemotePort

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

Specified by:
getRemotePort in interface ConnectionMBean
Returns:
The port of the client

getPath

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

Specified by:
getPath in interface ConnectionMBean
Returns:
path Connection path

getSessionId

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

Specified by:
getSessionId in interface ConnectionMBean
Returns:
Session id

getReadBytes

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

Specified by:
getReadBytes in interface ConnectionMBean
Returns:
Number of read bytes

getWrittenBytes

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

Specified by:
getWrittenBytes in interface ConnectionMBean
Returns:
Number of written bytes

getReadMessages

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

Specified by:
getReadMessages in interface ConnectionMBean
Returns:
Number of read messages

getWrittenMessages

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

Specified by:
getWrittenMessages in interface ConnectionMBean
Returns:
Number of written messages

getDroppedMessages

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

Specified by:
getDroppedMessages in interface ConnectionMBean
Returns:
Number of dropped messages

getPendingMessages

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

Specified by:
getPendingMessages in interface ConnectionMBean
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.

Specified by:
ping in interface ConnectionMBean

getLastPingTime

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

Specified by:
getLastPingTime in interface ConnectionMBean
Returns:
roundtrip time in milliseconds

getScope

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

Specified by:
getScope in interface ConnectionMBean
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.

Specified by:
getBasicScopes in interface ConnectionMBean
Returns:
List of basic scopes


Copyright © 2006-2010 The Red5 Project