org.red5.server.net.rtmp

## Class RTMPHandler

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

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

Direct Known Subclasses:
  RTMPTHandler

    public class RTMPHandler
    extends BaseRTMPHandler

RTMP events handler.

### Field Summary

Fields
`protected static org.slf4j.Logger` `log`
`protected IServer` `server` Red5 server instance.
`protected StatusObjectService` `statusObjectService` Status object service.

### 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
`RTMPHandler()`

### Method Summary

Methods
`StatusObject` `getStatus(String code)`
`protected void` `invokeCall(RTMPConnection conn, IServiceCall call)` Remoting call invocation handler.
`boolean` `isGlobalScopeConnectionAllowed()`
`protected void` `onBWDone()`
`protected void` `onChunkSize(RTMPConnection conn, Channel channel, Header source, ChunkSize chunkSize)` Chunk size change event handler.
`protected void` `onInvoke(RTMPConnection conn, Channel channel, Header source, Notify invoke, RTMP rtmp)` Invocation event handler.
`protected void` `onPing(RTMPConnection conn, Channel channel, Header source, Ping ping)` Ping event handler.
`protected void` `onSharedObject(RTMPConnection conn, Channel channel, Header source, SharedObjectMessage object)` Shared object event handler.
`void` `setGlobalScopeConnectionAllowed(boolean globalScopeConnectionAllowed)`
`void` `setServer(IServer server)` Setter for server object.
`void` `setStatusObjectService(StatusObjectService statusObjectService)` Setter for status object service.

### Methods inherited from class org.red5.server.net.rtmp.BaseRTMPHandler

`connectionClosed, connectionOpened, getHostname, getStreamId, handlePendingCallResult, messageReceived, messageSent, onStreamBytesRead, setApplicationContext`

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

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

### Field Detail

#### log

    protected static org.slf4j.Logger log

#### statusObjectService

    protected StatusObjectService statusObjectService

Status object service.

#### server

    protected IServer server

Red5 server instance.

### Constructor Detail

#### RTMPHandler

    public RTMPHandler()

### Method Detail

#### setServer

    public void setServer(IServer server)

Setter for server object.

Parameters:
  `server` - Red5 server instance

#### setStatusObjectService

    public void setStatusObjectService(StatusObjectService statusObjectService)

Setter for status object service.

Parameters:
  `statusObjectService` - Status object service.

#### isGlobalScopeConnectionAllowed

    public boolean isGlobalScopeConnectionAllowed()

#### setGlobalScopeConnectionAllowed

    public void setGlobalScopeConnectionAllowed(boolean globalScopeConnectionAllowed)

#### onChunkSize

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

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

Specified by:
  `onChunkSize` in class `BaseRTMPHandler`
Parameters:
  `conn` - Connection
  `channel` - Channel
  `source` - Header
  `chunkSize` - New chunk size

#### invokeCall

    protected void invokeCall(RTMPConnection conn,
                  IServiceCall call)

Remoting call invocation handler.

Parameters:
  `conn` - RTMP connection
  `call` - Service call

#### onInvoke

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

Invocation event handler.

Specified by:
  `onInvoke` in class `BaseRTMPHandler`
Parameters:
  `conn` - Connection
  `channel` - Channel
  `source` - Header
  `invoke` - Invocation event context
  `rtmp` - RTMP connection state

#### getStatus

    public StatusObject getStatus(String code)

#### onPing

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

Ping event handler.

Specified by:
  `onPing` in class `BaseRTMPHandler`
Parameters:
  `conn` - Connection
  `channel` - Channel
  `source` - Header
  `ping` - Ping event context

#### onSharedObject

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

Shared object event handler.

Specified by:
  `onSharedObject` in class `BaseRTMPHandler`
Parameters:
  `conn` - Connection
  `channel` - Channel
  `source` - Header
  `object` - Shared object event context

#### onBWDone

    protected void onBWDone()