本文整理汇总了Java中org.red5.server.api.scope.IScope.getHandler方法的典型用法代码示例。如果您正苦于以下问题:Java IScope.getHandler方法的具体用法?Java IScope.getHandler怎么用?Java IScope.getHandler使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.red5.server.api.scope.IScope
的用法示例。
在下文中一共展示了IScope.getHandler方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getServiceHandler
import org.red5.server.api.scope.IScope; //导入方法依赖的package包/类
/**
* Lookup a handler for the passed service name in the given scope.
*
* @param scope
* Scope
* @param serviceName
* Service name
* @return Service handler
*/
private Object getServiceHandler(IScope scope, String serviceName) {
// get application scope handler first
Object service = scope.getHandler();
if (serviceName == null || serviceName.equals("")) {
// no service requested, return application scope handler
log.trace("No service requested, return application scope handler: {}", service);
return service;
}
// search service resolver that knows about service name
for (IServiceResolver resolver : serviceResolvers) {
service = resolver.resolveService(scope, serviceName);
if (service != null) {
return service;
}
}
// requested service does not exist
return null;
}
示例2: invokeCall
import org.red5.server.api.scope.IScope; //导入方法依赖的package包/类
/**
* Remoting call invocation handler.
*
* @param conn
* RTMP connection
* @param call
* Service call
*/
protected void invokeCall(RTMPConnection conn, IServiceCall call) {
final IScope scope = conn.getScope();
if (scope != null) {
if (scope.hasHandler()) {
final IScopeHandler handler = scope.getHandler();
log.debug("Scope: {} handler: {}", scope, handler);
if (!handler.serviceCall(conn, call)) {
// XXX: What to do here? Return an error?
log.warn("Scope: {} handler failed on service call", scope.getName(), new Exception("Service call failed"));
return;
}
}
final IContext context = scope.getContext();
log.debug("Context: {}", context);
context.getServiceInvoker().invoke(call, scope);
} else {
log.warn("Scope was null for invoke: {} connection state: {}", call.getServiceMethodName(), conn.getStateCode());
}
}
示例3: sendStartNotifications
import org.red5.server.api.scope.IScope; //导入方法依赖的package包/类
private void sendStartNotifications(IEventListener source) {
if (sendStartNotification) {
// notify handler that stream starts recording/publishing
sendStartNotification = false;
if (source instanceof IConnection) {
IScope scope = ((IConnection) source).getScope();
if (scope.hasHandler()) {
final Object handler = scope.getHandler();
if (handler instanceof IStreamAwareScopeHandler) {
if (recordingListener != null && recordingListener.get().isRecording()) {
// callback for record start
((IStreamAwareScopeHandler) handler).streamRecordStart(this);
} else {
// delete any previously recorded versions of this now "live" stream per
// http://livedocs.adobe.com/flashmediaserver/3.0/hpdocs/help.html?content=00000186.html
// try {
// File file = getRecordFile(scope, publishedName);
// if (file != null && file.exists()) {
// if (!file.delete()) {
// log.debug("File was not deleted: {}", file.getAbsoluteFile());
// }
// }
// } catch (Exception e) {
// log.warn("Exception removing previously recorded file", e);
// }
// callback for publish start
((IStreamAwareScopeHandler) handler).streamPublishStart(this);
}
}
}
}
// send start notifications
sendPublishStartNotify();
if (recordingListener != null && recordingListener.get().isRecording()) {
sendRecordStartNotify();
}
notifyBroadcastStart();
}
}