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