A messaging application may include a configuration file located in the root of the application. The file name must be app.config. Configuration includes the following sections:
| • | Application handler - provides custom handling of application life cycle events |
| • | Streams folder path - configures the location of the folder containing Flash video (.flv) files available for streaming. Additionally, the folder stores the recorded streams |
| • | Extensibility implementations - configures various classes implementing WebORB Messaging APIs overriding default implementations |
Messaging application handler can add custom functionality to the default processing of the application life cycle events. For instance, handler may notify all connected clients about other clients joining/leaving the application. A handler must implement the Weborb.Messaging.Api.IScopeHandler interface or can extend the Weborb.Messaging.Server.Adapter.ApplicationAdapter class. Click here for additional information about WebORB application handlers.
By default messaging applications store the streams in the /streams folder under the application directory. For example, the following directory structure shows a messaging application with 3 flash video files:
[WEBORB HOME]
└─Applications
└─MyVideoApp
└─streams
├─video1.flv
├─video2.flv
└─video3.flv
It is quite common that the location of the video files must be taken outside of the IIS directory structure. Messaging application configuration file (app.config) contains a configuration option to override the default location: stream-path. For example, the configuration below sets the streams folder path to c:\mediafiles\homevideo\streams:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<application-handler>Examples.AppHandler</application-handler>
<streams-path>c:\mediafiles\homevideo\streams</streams-path>
</configuration>
When the streams path is overridden, all videos for the application will be located at the specified path. Additionally, WebORB will use the same folder for any streams recorded by the application.
WebORB provides several points of extensibility enabling customization of the default implementation. Below is a list of functional areas an application can be customized with:
Extensibility element |
Description |
Additional information |
streamFilenameGenerator |
A class responsible for constructing paths to the stream files |
contact support |
consumerService |
Service for consumer objects, used to get pushed messages at consumer endpoint |
contact support |
streamableFileFactory |
Scope service extension that provides method to get streamable file services set |
contact support |
schedulingService |
Service that supports periodic execution of jobs, adding, removing and getting their name as list |
contact support |
streamService |
Class responsible for handling of the stream methods that can be called through RTMP |
contact support |
providerService |
Central unit to get access to different types of provider inputs |
contact support |
streamSecurityService |
Service that supports protecting access to streams |
contact support |
flowControlService |
Service that controls bandwidth of IFlowControllable objects |
contact support |
videoCodecFactory |
Factory class responsible for creating an instance of video codec |
contact support |
sharedObjectService |
Class responsible for managing creation and retrieval of remote shared objects |
contact support |