posts - 431,  comments - 344,  trackbacks - 0
原文地址:http://bbs.liuquan.net/thread-71224-1-1.html
今天,想好好改改以前做的flash+red5聊天室,程序又得从头建立,记录下过程.
        1、 到RED5的安装目录,找到doc/templates目录,该目录中存放了一个标准的RED5应用程序模版myapp,将其复制到RED5安装目录中的webapps目录下那么可以把myapp改为mychat,这个名字就是以后要连接的服务名了
    2、 在WEB-INF中新建一个文件夹src用来存放程序的源代码,新建一个classes文件夹用来存放编译后的文件
     3、打开Eclipse将工作区指定为RED5安装目录下webapps,然后新建一个项目,项目名为myChat.这个时候你应该发现刚才myChat中的文件都被加载进来了,我们首先把src目录指定为源代码目录,右键选择src,在弹出的菜单中选择Build Path->Use as Source Folder,即将其指定为代码文件夹。接下来要指定项目的目标目录,在项目名上右键选择Properties,选择Java Bulid Path,在选择Source标签,在下面的Browse中选择Classes目录,将其指定为目标目录。然后选择Libraries,点击Add External JARs,将RED5安装目录下的red5.jar包含进来。(java下的jar也最好包含进来)
   4、在Eclipse的左边应该多了WEB-INF/src这样一个东东,我们将要在这里开始写入我们的第一个项目代码。右键选择它,在弹出的菜单中选择New->Package,新建一个包,举例,包名可以为lchat,然后再在生成的lchat这个包上继续右键选择New->File,输入文件名Application.java。并在建好的文件中输入以下代码:
package   lchat;
     import org.red5.server.adapter.ApplicationAdapter;
     public class Application extends ApplicationAdapter{
     public Double add(Double a,Double b){
     return a+b;
     }
     }

  5、
  把red5-web.properties文件做以下更改:将第一句修改为webapp.contextPath=/myChat
  把web.xml文件作以下更改:找到webAppRootKey,将其下面的param-value标签中的值修改为/myChat。
  把red5-web.xml文件做以下更改:找到bean id=”web.handler”一句,将class=”XXX”中的XXX位置修改为org.d5.first.Application,这样本程序将以刚才写的Application来运行。删除后面的bean id=”server.handler…整句,因为我们暂时用不到这个东东。

  把red5-web.properties文件做以下更改:将第一句修改为webapp.contextPath=/myChat

6、重新启动red5
7、flash里面运行
nc = new NetConnection();
trace(111);
     nc.connect("rtmp://localhost/mychat");
     nc.onResult = function(obj){
     trace("This result is " +obj);
     }
     nc.call("add",nc,1,2);

就出来结果了
表示连接成功

一个最基本的red5连flash程序就好了

下面是Python代码

from org.red5.server.adapter import ApplicationAdapter
from org.red5.server.api.stream import IStreamCapableConnection
from org.red5.server.api.stream.support import SimpleBandwidthConfigure

class Application(ApplicationAdapter):
   
    def appStart(self, app):
        ApplicationAdapter.appStart(self, app)
        print 'Python appStart', app
        self.appScope = app
        return 1

    def appConnect(self, conn, params):
        ApplicationAdapter.appConnect(self, conn, params)
        print 'Python appConnect:', conn, params
        self.measureBandwidth(conn)
        if isinstance(conn, IStreamCapableConnection):
            print 'Python setting bandwidth limits'
            sbc = SimpleBandwidthConfigure()
            sbc.setMaxBurst(8388608)
            sbc.setBurst(8388608)
            sbc.setOverallBandwidth(2097152);
            conn.setBandwidthConfigure(sbc);
       
        return 1

    def toString(self):
        return 'Python:Application'

def getInstance(*args):
    print 'Arguments:', args
    return Application()


posted on 2008-12-17 17:23 周锐 阅读(3958) 评论(2)  编辑  收藏 所属分类: Flex

只有注册用户登录后才能发表评论。


网站导航: