今天,想好好改改以前做的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