## org.red5.server.net.rtmp
Class BaseRTMPHandler

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

All Implemented Interfaces:
  IRTMPHandler, Constants, StatusCodes, ApplicationContextAware

Direct Known Subclasses:
  BaseRTMPClientHandler, RTMPHandler

    public abstract class BaseRTMPHandler

extends Object
implements IRTMPHandler, Constants, StatusCodes, 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_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_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_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_UNPAUSE_NOTIFY, NS_UNPUBLISHED_SUCCESS, SO_CREATION_FAILED, SO_NO_READ_ACCESS, SO_NO_WRITE_ACCESS, SO_PERSISTENCE_MISMATCH`

Constructor Summary
`BaseRTMPHandler()`

Method Summary
`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(RTMPConnection conn, ProtocolState state, Object in)` Message recieved
`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(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(ApplicationContext appCtx)
                               throws BeansException

  Specified by:
    `setApplicationContext` in interface `ApplicationContextAware`
  Throws:
    `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(RTMPConnection conn,
                                ProtocolState state,
                                Object in)
                         throws Exception

  Message recieved

  Specified by:
    `messageReceived` in interface `IRTMPHandler`
  Parameters:
    `conn` - Connection
    `state` - RTMP state
    `in` - Message
  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

Copyright © 2006-2010 The Red5 Project