org.red5.server.net.rtmp

## Class BaseRTMPHandler

- java.lang.Object
- - org.red5.server.net.rtmp.BaseRTMPHandler

All Implemented Interfaces:
  IRTMPHandler, Constants, StatusCodes, org.springframework.context.ApplicationContextAware

Direct Known Subclasses:
  RTMPHandler

    public abstract class BaseRTMPHandler
    extends Object
    implements IRTMPHandler, Constants, StatusCodes, org.springframework.context.ApplicationContextAware

Base class for all RTMP handlers.

Author:
  The Red5 Project (red5@osflash.org)

### Field Summary

### Fields inherited from interface org.red5.server.net.rtmp.message.Constants

`HANDSHAKE_SIZE, HEADER_CONTINUE, HEADER_NEW, HEADER_SAME_SOURCE, HEADER_TIMER_CHANGE, MEDIUM_INT_MAX, SO_CLIENT_CLEAR_DATA, SO_CLIENT_DELETE_DATA, SO_CLIENT_INITIAL_DATA, SO_CLIENT_SEND_MESSAGE, SO_CLIENT_STATUS, SO_CLIENT_UPDATE_ATTRIBUTE, SO_CLIENT_UPDATE_DATA, SO_CONNECT, SO_DELETE_ATTRIBUTE, SO_DISCONNECT, SO_SEND_MESSAGE, SO_SET_ATTRIBUTE, SOURCE_TYPE_LIVE, SOURCE_TYPE_VOD, TYPE_ABORT, TYPE_AGGREGATE, TYPE_AUDIO_DATA, TYPE_BYTES_READ, TYPE_CHUNK_SIZE, TYPE_CLIENT_BANDWIDTH, TYPE_EDGE_ORIGIN, TYPE_FLEX_MESSAGE, TYPE_FLEX_SHARED_OBJECT, TYPE_FLEX_STREAM_SEND, TYPE_INVOKE, TYPE_NOTIFY, TYPE_PING, TYPE_SERVER_BANDWIDTH, TYPE_SHARED_OBJECT, TYPE_STREAM_METADATA, TYPE_VIDEO_DATA`

### Fields inherited from interface org.red5.server.net.rtmp.status.StatusCodes

`APP_GC, APP_RESOURCE_LOWMEMORY, APP_SCRIPT_ERROR, APP_SCRIPT_WARNING, APP_SHUTDOWN, NC_CALL_BADVERSION, NC_CALL_FAILED, NC_CONNECT_APPSHUTDOWN, NC_CONNECT_CLOSED, NC_CONNECT_FAILED, NC_CONNECT_INVALID_APPLICATION, NC_CONNECT_REJECTED, NC_CONNECT_SUCCESS, NS_BUFFER_EMPTY, NS_CLEAR_FAILED, NS_CLEAR_SUCCESS, NS_DATA_START, NS_FAILED, NS_INVALID_ARGUMENT, NS_PAUSE_NOTIFY, NS_PLAY_COMPLETE, NS_PLAY_FAILED, NS_PLAY_FILE_STRUCTURE_INVALID, NS_PLAY_INSUFFICIENT_BW, NS_PLAY_NO_SUPPORTED_TRACK_FOUND, NS_PLAY_PUBLISHNOTIFY, NS_PLAY_RESET, NS_PLAY_START, NS_PLAY_STOP, NS_PLAY_STREAMNOTFOUND, NS_PLAY_SWITCH, NS_PLAY_TRANSITION, NS_PLAY_TRANSITION_COMPLETE, NS_PLAY_UNPUBLISHNOTIFY, NS_PUBLISH_BADNAME, NS_PUBLISH_START, NS_RECORD_FAILED, NS_RECORD_NOACCESS, NS_RECORD_START, NS_RECORD_STOP, NS_SEEK_FAILED, NS_SEEK_NOTIFY, NS_TRANSITION_FORCED, NS_TRANSITION_SUCCESS, NS_UNPAUSE_NOTIFY, NS_UNPUBLISHED_SUCCESS, SO_CREATION_FAILED, SO_NO_READ_ACCESS, SO_NO_WRITE_ACCESS, SO_PERSISTENCE_MISMATCH`

### Constructor Summary

Constructors
Constructor and Description
`BaseRTMPHandler()`

### Method Summary

Methods
`void` `connectionClosed(RTMPConnection conn, RTMP state)` Connection closed
`void` `connectionOpened(RTMPConnection conn, RTMP state)` Connection open event
`protected String` `getHostname(String url)` Return hostname for URL.
`static int` `getStreamId()` Getter for stream ID.
`protected void` `handlePendingCallResult(RTMPConnection conn, Notify invoke)` Handler for pending call result.
`void` `messageReceived(Object in, org.apache.mina.core.session.IoSession session)` Message received
`void` `messageSent(RTMPConnection conn, Object message)` Message sent
`protected abstract void` `onChunkSize(RTMPConnection conn, Channel channel, Header source, ChunkSize chunkSize)` Chunk size change event handler.
`protected abstract void` `onInvoke(RTMPConnection conn, Channel channel, Header source, Notify invoke, RTMP rtmp)` Invocation event handler.
`protected abstract void` `onPing(RTMPConnection conn, Channel channel, Header source, Ping ping)` Ping event handler.
`protected abstract void` `onSharedObject(RTMPConnection conn, Channel channel, Header source, SharedObjectMessage object)` Shared object event handler.
`protected void` `onStreamBytesRead(RTMPConnection conn, Channel channel, Header source, BytesRead streamBytesRead)` Stream bytes read event handler.
`void` `setApplicationContext(org.springframework.context.ApplicationContext appCtx)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### BaseRTMPHandler

    public BaseRTMPHandler()

### Method Detail

#### getStreamId

    public static int getStreamId()

Getter for stream ID.

Returns:
  Stream ID

#### setApplicationContext

    public void setApplicationContext(org.springframework.context.ApplicationContext appCtx)
                               throws org.springframework.beans.BeansException

Specified by:
  `setApplicationContext` in interface `org.springframework.context.ApplicationContextAware`
Throws:
  `org.springframework.beans.BeansException`

#### connectionOpened

    public void connectionOpened(RTMPConnection conn,
                        RTMP state)

Connection open event

Specified by:
  `connectionOpened` in interface `IRTMPHandler`
Parameters:
  `conn` - Connection
  `state` - RTMP state

#### messageReceived

    public void messageReceived(Object in,
                       org.apache.mina.core.session.IoSession session)
                         throws Exception

Message received

Specified by:
  `messageReceived` in interface `IRTMPHandler`
Parameters:
  `in` - Message
  `session` - Connected session
Throws:
  `Exception` - Exception

#### messageSent

    public void messageSent(RTMPConnection conn,
                   Object message)

Message sent

Specified by:
  `messageSent` in interface `IRTMPHandler`
Parameters:
  `conn` - Connection
  `message` - Message

#### connectionClosed

    public void connectionClosed(RTMPConnection conn,
                        RTMP state)

Connection closed

Specified by:
  `connectionClosed` in interface `IRTMPHandler`
Parameters:
  `conn` - Connection
  `state` - RTMP state

#### getHostname

    protected String getHostname(String url)

Return hostname for URL.

Parameters:
  `url` - URL
Returns:
  Hostname from that URL

#### handlePendingCallResult

    protected void handlePendingCallResult(RTMPConnection conn,
                               Notify invoke)

Handler for pending call result. Dispatches results to all pending call handlers.

Parameters:
  `conn` - Connection
  `invoke` - Pending call result event context

#### onChunkSize

    protected abstract void onChunkSize(RTMPConnection conn,
                   Channel channel,
                   Header source,
                   ChunkSize chunkSize)

Chunk size change event handler. Abstract, to be implemented in subclasses.

Parameters:
  `conn` - Connection
  `channel` - Channel
  `source` - Header
  `chunkSize` - New chunk size

#### onInvoke

    protected abstract void onInvoke(RTMPConnection conn,
                Channel channel,
                Header source,
                Notify invoke,
                RTMP rtmp)

Invocation event handler.

Parameters:
  `conn` - Connection
  `channel` - Channel
  `source` - Header
  `invoke` - Invocation event context
  `rtmp` - RTMP connection state

#### onPing

    protected abstract void onPing(RTMPConnection conn,
              Channel channel,
              Header source,
              Ping ping)

Ping event handler.

Parameters:
  `conn` - Connection
  `channel` - Channel
  `source` - Header
  `ping` - Ping event context

#### onStreamBytesRead

    protected void onStreamBytesRead(RTMPConnection conn,
                         Channel channel,
                         Header source,
                         BytesRead streamBytesRead)

Stream bytes read event handler.

Parameters:
  `conn` - Connection
  `channel` - Channel
  `source` - Header
  `streamBytesRead` - Bytes read event context

#### onSharedObject

    protected abstract void onSharedObject(RTMPConnection conn,
                      Channel channel,
                      Header source,
                      SharedObjectMessage object)

Shared object event handler.

Parameters:
  `conn` - Connection
  `channel` - Channel
  `source` - Header
  `object` - Shared object event context