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 周銳 閱讀(3974) 評論(2)  編輯  收藏 所屬分類: Flex
          主站蜘蛛池模板: 淳化县| 延川县| 鄂尔多斯市| 如东县| 镶黄旗| 鹰潭市| 桑日县| 获嘉县| 雅江县| 永春县| 靖安县| 冕宁县| 海伦市| 邵阳县| 塔城市| 怀集县| 永清县| 延庆县| 伊春市| 旌德县| 台山市| 齐河县| 岑溪市| 雅安市| 孟津县| 获嘉县| 兴隆县| 车致| 施秉县| 竹山县| 连城县| 洛扎县| 郴州市| 大同县| 土默特右旗| 于田县| 农安县| 重庆市| 盘锦市| 洪湖市| 武穴市|