OpenRTMFP/Cumulus Primer(1)入門介紹與部署CumulusServer

鍾超發表於2012-04-10

OpenRTMFP/Cumulus Primer(1)入門介紹與部署CumulusServer

  • 作者:柳大·Poechant
  • 部落格:Blog.csdn.net/poechant
  • 郵箱:zhongchao.ustc@gmail.com
  • 日期:April 10th, 2012

1 背景介紹

OpenRTMFP 可以幫助你實現 Flash 的實時應用的高併發擴充套件,OpenRTMFP/Cumulus 是基於 GNU General Public License 的。

  • OpenRTMFP: Real Time Media Flow Protocol
  • POCO: POrtable COmponents,是一個強大的開源 C++ 庫。其在 C++ 開發中的角色,相當於 Java Class Library、蘋果的 Cocoa、.NET framework。

2 準備工作

下載:

External Dependencies Official Site Windows Linux/OSX
OpenSSL Official Site Download Download
Lua Official Site Download Download
POCO Official Site Download Download

注意:

  • POCO for linux: 版本必須是 1.4.0 或更高,否則會引起 TCP 相關的 bug。

3 安裝

3.1 外部依賴的安裝

Windows 下略,Linux 下基本就是:

./configure
make
sudo make install

3.2 安裝 OpenRTMFP/Cumulus

OpenRTMFP-Cumulus/CumulusLib
make
cd ../CumulusServer
make

如果出現了.h檔案、lib 庫找不到的情況,請修改 OpenRTMFP-Cumulus/CumulusLib/Makefile 或 OpenRTMFP-Cumulus/CumulusServer/Makefile。

4 配置

通過編寫OpenRTMFP-Cumulus/CumulusServer/CumulusServer.ini檔案來為 OpenRTMFP-Cumulus 進行個性化配置(預設是沒有這個檔案的),這個檔案的內容形如:

;CumulusServer.ini
port = 1985 
udpBufferSize = 114688
keepAlivePeer = 10
keepAliveServer = 15
[logs]
name=log
directory=C:/CumulusServer/logs

一些欄位的設定含義如下,摘自:地址

  • 公開給 Client 的埠號:port, equals 1935 by default (RTMFP server default port), it’s the port used by CumulusServer to listen incoming RTMFP requests.
  • UDP 緩衝區位元組數:udpBufferSize, allows to change the size in bytes of UDP reception and sending buffer. Increases this value if your operating system has a default value too lower for important loads.
  • keepAliveServer, time in seconds for periodically sending packets keep-alive with server, 15s by default (valid value is from 5s to 255s).
  • keepAlivePeer, time in seconds for periodically sending packets keep-alive between peers, 10s by default (valid value is from 5s to 255s).
  • edges.activated, activate or not the edges server on the RTMFP server (see CumulusEdge, Scalability page for more details about CumulusEdge). By default, CumulusServer stays a RTMFP server without edges ability (default value is false).
  • edges.port, port for the edges server, to accept incoming new CumulusEdge instances (see CumulusEdge, Scalability page for more details about CumulusEdge). By default, it’s the port 1936.

    Warning: This port will receive plain text request from edges, for this purpose it should not be made public. It’s very important for security consideration. It must be available only for CumulusEdge instances, and anything else.

  • edges.attemptsBeforeFallback, number of CumulusEdge attempt connections before falling back to CumulusServer (see CumulusEdge, Scalability page for more details about CumulusEdge). By default the value is 2 (in practical, 2 attempts happens after 5 sec approximately).
  • smtp.host, configure a SMTP host to use mails feature provided by Cumulus in server application (see Server Application, Sockets page for more details about mails feature). By default the value is localhost.
  • smtp.port, configure a SMTP port to use mails feature provided by Cumulus in server application (see Server Application, Sockets page for more details about mails feature). By default the value is 25.
  • smtp.timeout, configure a SMTP timeout session in seconds to use mails feature provided by Cumulus in server application (see Server Application, Sockets page for more details about mails feature). By default the value is 60 seconds.
  • 日誌路徑:logs.directory, directory where are written log files (CumulusServer/logs by default).
  • 日誌檔名稱:logs.name, name of log file (log by default).

5 啟動

Windows 下的啟動方法為:

CumulusServer.exe /registerService [/displayName=CumulusServer /description="Open Source RTMFP Server" /startup=automatic]

Unix-like 下的啟動方法為:

sudo ./CumulusServer --daemon [--pidfile=/var/run/CumulusServer.pid]

如我的啟動命令為:

sudo ./CumulusServer --daemon --pidfile=./CumulusServer.pid

6 基本使用

本地 Flash client 可以通過如下語句連線:

var nc:NetConnection = new NetConnection();
nc.connect("rtmfp://localhost/");

RTMFP預設是採用1935埠,如果你特別指定了其他埠,比如12345,請使用如下方式:

nc.connect("rtmfp://localhost:12345/");

7 擴充套件 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 的建立是一種動態的方式。

CumulusServer 的詳細擴充套件方式會在下一篇文章中介紹。

-

轉載請註明來自柳大的CSDN部落格:Blog.csdn.net/poechant

-

相關文章