今天,想好好改改以前做的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
周銳 閱讀(3968)
評論(2) 編輯 收藏 所屬分類:
Flex