2006年9月8日

IO 是最基本的基类 后面的很多功能扩展他。
BaseStreamableFileService.java
package org.red5.io;

 

import java.io.File;
import java.io.IOException;


public abstract class BaseStreamableFileService implements IStreamableFileService {

 public abstract String getPrefix();

 public abstract String getExtension();

 public String prepareFilename(String name) {
  if (name.startsWith(getPrefix() + ":")) {
   name = name.substring(getPrefix().length() + 1);
   if (!name.endsWith(getExtension()))
    name = name + getExtension();
  }
  
  return name;
 }

 public boolean canHandle(File file) {
  return file.exists() && file.getAbsolutePath().toLowerCase().endsWith(getExtension());
 }

 public abstract IStreamableFile getStreamableFile(File file) throws IOException;

}


StreamableFileFactory.java

package org.red5.io;

 

import java.io.File;
import java.util.HashSet;
import java.util.Set;

public class StreamableFileFactory implements IStreamableFileFactory {

 private Set<IStreamableFileService> services = new HashSet<IStreamableFileService>();
 
 public void setServices(Set<IStreamableFileService> services) {
  this.services = services;
 }
 
 public IStreamableFileService getService(File fp) {
  // Return first service that can handle the passed file
  for (IStreamableFileService service : this.services) {
   if (service.canHandle(fp))
    return service;
  }
  
  return null;
 }
 
 public Set<IStreamableFileService> getServices() {
  return services;
 }
}


org.red5.io Interfaces  接口

IoConstants  
IStreamableFile
IStreamableFileFactory
IStreamableFileService
ITag  扩展了 org.apache.mina.common.ByteBuffer 包
ITagReader
ITagWriter

Classes   2个基类
BaseStreamableFileService
StreamableFileFactory

posted @ 2006-09-08 13:03 学者 阅读(441) 评论(0) 编辑

     近来没有事研究起FLASH视频会议(无须装客户段)但是官方的服务器FMS 价格贵。且扩展起来很不方便。于是研究RED5。
RED5 是 开元组织产品。由MINA+JETTY 的核心构成 能支持RTMP,HTTP协议。不过性能上不敌FMS 但是可以自己扩展地层代码优化性能。

下面是他的核心代码包:
All Classes

Packages
org.red5.io
org.red5.io.amf
org.red5.io.amf3
org.red5.io.flv
org.red5.io.flv.impl
org.red5.io.flv.meta
org.red5.io.mock
org.red5.io.mp3
org.red5.io.mp3.impl
org.red5.io.object
org.red5.io.utils
org.red5.samples.components
org.red5.samples.services
org.red5.server
org.red5.server.adapter
org.red5.server.api
org.red5.server.api.event
org.red5.server.api.persistence
org.red5.server.api.scheduling
org.red5.server.api.service
org.red5.server.api.so
org.red5.server.api.stream
org.red5.server.api.stream.support
org.red5.server.exception
org.red5.server.jetty
org.red5.server.messaging
org.red5.server.net
org.red5.server.net.protocol
org.red5.server.net.proxy
org.red5.server.net.remoting
org.red5.server.net.remoting.codec
org.red5.server.net.remoting.message
org.red5.server.net.rtmp
org.red5.server.net.rtmp.codec
org.red5.server.net.rtmp.event
org.red5.server.net.rtmp.message
org.red5.server.net.rtmp.status
org.red5.server.net.rtmpt
org.red5.server.net.rtmpt.codec
org.red5.server.net.servlet
org.red5.server.persistence
org.red5.server.scheduling
org.red5.server.service
org.red5.server.so
org.red5.server.statistics
org.red5.server.stream
org.red5.server.stream.codec
org.red5.server.stream.consumer
org.red5.server.stream.filter
org.red5.server.stream.message
org.red5.server.stream.provider

  偶正在解读里面的包。相信看完自己也会做小型服务器。
有兴趣的可以一起研究。GMAIL:XJB922#GMAIL。COM

posted @ 2006-09-08 12:50 学者 阅读(8566) 评论(13) 编辑


posts - 20, comments - 39, trackbacks - 0, articles - 0

Copyright © 学者