Ubuntu 12.04 64bit或者CentOS 6.3 64bit上搭建OpenRTMFP/Cumulus服务器
2013-12-25
1.從官網下載源碼包
cd ~/progrom_develop
git clone git://github.com/OpenRTMFP/Cumulus.git
tree -L 2 Cumulus
cd Culumus
現在進入該目錄大致了解一下目錄結構.
Cumulus是跨平臺的,在生成時,都要先生成CumulusLib,再生成CumulusServer.
2.安裝依賴庫
Cumulus需要依賴OpenSSL, POCO, LuaJIT
下面是他們相關的主頁:
http://pocoproject.org/
http://luajit.org/download.html
在Ubuntu 12.04下執行sudo apt-get install libssl-dev?
或者在CentOS 6.3下面執行
yum -y install openssl-devel
下面的POCO和LuaJIT采用源碼包安裝方式:
wget http://pocoproject.org/releases/poco-1.4.6/poco-1.4.6p2.tar.gz(這個在CentOS 6.3上測試過,注意編譯時間較長)
或者
wget https://github.com/downloads/pocoproject/poco/poco-1.4.5.tar.gz
tar zxf poco-1.4.5.tar.gz
cd poco-1.4.5
./configure
make
sudo make install
wget http://luajit.org/download/LuaJIT-2.0.2.tar.gz
tar zxf LuaJIT-2.0.2.tar.gz
cd LuaJIT-2.0.2
make
sudo make install
cd ../Cumulus
cd CumulusLib
make
cd ../CumulusServer
make
注意清除步驟剛好反過來:
cd CumulusLib
make clean
cd ../CumulusServer
make clean
3.配置并啟動
在安裝目錄CumulusServer下面新增一個CumulusServer.ini文件來進行個性化配置,下面是可能的配置選項:
port: 默認1935, RTMFP server的默認端口,用于Cumulus server偵聽進來的RTMFP請求
udpBufferSize:指定UDP接收和發送緩存的字節大小,假如你的OS的默認值小于重要的負載值,增加它的大小
threads: 指定Cumulus中線程池中線程個數,通常應大于或等于主機CPU的核數,默認會自動探測這個值,但是可能在具有CPU超線程技術的機器,或是在某些操作系統上有瑕疵.
keepAliveServer:服務器間周期性發送keep-alive保活包的秒數,默認15秒,合法值為5秒到255秒
keepAlivePeer:peer間周期性發送keep-alive保活包的秒數,默認10秒,合法值為5秒到255秒
publicAddress:客戶端看到的外網地址,便于客戶端重定向
servers.port: 接收進來的服務器連接的端口,注意服務器間的交互采用非加密的TCP通信,要確保安全,使用防火墻
servers.targets:在啟動時要連接的CumulusServer地址列表(分號分隔),
smtp.host:配置SMTP主機去使用Cumulus提供的mail功能,默認localhost
smtp.port:配置SMTP端口去使用Cumulus提供的mail功能,默認25
smtp.timeout:配置SMTP超時會話的秒數去使用Cumulus提供的mail功能,默認60秒
logs.directory:寫日志文件的目錄,默認CumulusServer/logs
logs.name:日志文件的名稱,默認log
下面是一個配置文件樣例,它和CumulusServer放在相同的目錄下面:
;CumulusServer.ini
port = 1985?
udpBufferSize = 114688
keepAlivePeer = 10
keepAliveServer = 15
[logs]
name=log
directory=/home/taoyx/program_develop/Cumulus/CumulusServer/logs
啟動CumulusServer:
CumulusServer包含了一些啟動參數,但是默認CumulusServer在生產環境下運行是優化過的,命令行的選項在開發和測試時比較有用.為了得到啟動CumulusServer時的啟動參數的完整描述,請使用如下命令
./CumulusServer --help
或者
./CumulusServer -h
否則,使用管理員權限去使用
./CumulusServer
簡單啟動
sudo ./CumulusServer --daemon
或者
sudo ./CumulusServer --daemon --pidfile=./CumulusServer.pid
啟動后發現在當前目錄下,自動生成了一個www目錄,和pid文件,在上層父目錄生成了logs目錄.
4.基本使用方法
本地Flash Client可以通過如下語句連接
var nc:NetConnection = new NetConnection();
nc.connect("rtmfp://localhost/");
RTMFP默認是采用1935端口,如果你在CumulusServer的配置文件CumulusServer.ini中特別指定了其他端口,比如12345,你必須在URL中明示該端口,請使用如下方式:
nc.connect("rtmfp://localhost:12345/");
5.擴展CumulusServer--Server Application
CumulusServer包含一個很有威力的腳本引擎(使用LUA)來生成你自己的服務器應用,它允許使用靈活的腳本方式去加入你的特定需求來擴展Cumulus的行為.
5.1生成服務器應用
CumulusServer一啟動后,它會在當前目錄生成一個www文件夾作為自己的root目錄,假如事先不存在www的情況下.你可以在該目錄下生成若干子目錄,一個子目錄可以描述一個服務器應用,
當客戶端連接到CumulusServer時,URL的path中指定了要使用的application,比如,如下url:
rtmfp://host:port/myApplication
將在CumulusServer/www/myApplication中搜索對應的application.
首次執行時,CumulusServer在www目錄中生成和執行其中的文件main.lua,然后,當新客戶端到來時,已經被生成的應用將被執行,除非上次main.lua已經被修改.事實上,當你修改main.lua時,對應的
應用將以動態方式重建,無須重啟服務器.
注意:root Application在CumulusServer啟動時創建和啟動,但是,其他的server application在第一個客戶端連接時開始.
啟動CumulusServer后,會在可執行文件的目錄下出現一個www目錄,該目錄的作用,就是作為 Server Application 的默認根目錄。具體的對應關系如下:
rtmfp://host:port/ ? ? ? ? ? ? ? ? ? -> ? ? [CumulusServer folder]/www/main.lua (root application)
rtmfp://host:port/myApplication ? ? ?-> ? ? [CumulusServer folder]/www/myApplication/main.lua
rtmfp://host:port/Games/myGame ? ? ? -> ? ? [CumulusServer folder]/www/Games/myGame/main.lua
另外要提醒的是,如果main.lua文件被修改,則不需要重啟CumulusServer,因為 Server Application 的創建是一種動態的方式。
每個應用由它的path區分,它恰好就是RTMFP URL連接中path部分, 拿上面的例子來說, root application在path中是一個空字符串, 但是另兩個服務器應用的path值分別是/myApplication和
/Games/myGame
下面是一個非常簡單的server application,將它保存為main.lua文件,放到www下面:
function onStart(path)
print("Server application '"..path.."' started")
end
function onStop(path)
print("Server application '"..path.."' stopped")
end
6.與Flash Player交互聯調
先以調試模式重新開啟Cumulus,注意按照ps查找到CumulusServer的進程號,比如4123,再使用
kill -9 4123
殺死Cumulus,再使用下面的命令重啟:
sudo ./CumulusServer --pidfile=./CumulusServer.pid -l8 --dump=all
然后開啟使用Flex Builder生成的flash player(另見后面的博文),我們將會在控制臺看到如下交互信息:
總結
以上是生活随笔為你收集整理的Ubuntu 12.04 64bit或者CentOS 6.3 64bit上搭建OpenRTMFP/Cumulus服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu 12.04 64位上安装W
- 下一篇: DOM+XPath提取规则注记!