MeepoPS是Meepo PHP Socket的縮寫。旨在提供高效穩定的由純PHP開發的多進程SocketService。
MeepoPS可以輕松構建在線實時聊天,即時游戲,視頻流媒體播放,RPC,實時監控,以及原本使用HTTP的接口/定時任務的場景中等。
綜述:
-
開發語言:PHP5.3以上
-
PHP作為最好的語言,不僅僅能依靠Nginx來開發Web應用,同時,也可以構建高效穩定的即時通訊類Socket應用
-
MeepoPS的最低運行要求是安裝了PHP的PCNTL庫
-
MeepoPS的定位是一個插件。不但可以獨立運行,也可以依附與ThinkPHP,CodeIgniter,YII等MVC框架中
-
MeepoPS是多進程,高性能,高可用,高並發,分布式的輕量級Socket服務,安全穩定。代碼維護在GitHub,開放源碼,永久免費。
-
MeepoPS由純PHP構建,代碼簡潔優雅。最好的語言,做更多的事情!
-
沒有復雜的代碼和新生語法,原生PHP語言直接調用即可。
傳送門:
MeepoPS官網
即時通訊
聲明:
-
絕大多數的PHP應用都部署在Linux服務器, 因此MeepoPS不支持非Unix操作系統(例如Windows)。 你可以使用Apple Mac(OS X), CentOS, Ubuntu, Red Hat, Fedora, FreeBSD等類Unix操作系統來啟動MeepoPS。
-
Windows用戶可以安裝VirtualBox, Vmware等虛擬機軟件來運行MeepoPS。
-
多進程及信號處理需要依賴PHP的PCNTL庫。 MeepoPS深度依賴PCNTL, 因此PCNTL庫是必須安裝的, 即使只啟動一個進程的MeepoPS, 仍然需要安裝PCNTL。 如何安裝:
-
在大規模訪問下,我們建議安裝PHP的PECL擴展Libevent,但這不是必須的。在高鏈接數的場景下, Libevent表現優異。如何安裝: PHP手冊-Libevent安裝 。截止2016-05-06,PHP官方的Libevent擴展不支持PHP7,PHP7下的Libevent安裝方法: PHP7的Libevent分支
-
默認監聽鏈接的方式為Select輪詢機制。PHP的Select輪詢機制最多只能監聽1024個鏈接。想要突破這個限制,要么安裝Libevent,要么使用--enable-fd-setsize=2048重新編譯安裝PHP。
快速入門:
服務端使用方法:
基礎功能和用法都寫在demo-telnet.php,基本您就可以直接用。
普通終端啟動:
1. 啟動: 命令行輸入"php demo-telnet.php start". 2. 狀態: 命令行輸入"php demo-telnet.php status". 3. 平滑結束: 啟動后按下"ctrl + c"即可. 4. 強行結束: 命令行輸入"kill -INT `cat /var/run/meepo_ps/meepo_ps_master.pid`".
守護進程模式啟動:
1. 啟動: 命令行輸入"php demo-telnet.php start -d". 2. 狀態: 命令行輸入"php demo-telnet.php status". 3. 平滑結束: 命令行輸入"php demo-telnet.php stop". 4. 強行結束: 命令行輸入"php demo-telnet.php kill". 5. 強行結束: 命令行輸入"kill -INT `cat /var/run/meepo_ps/meepo_ps_master.pid`".
DEMO:
1. 基於Telnet協議的服務端使用方法請參考demo-telnet.php. 2. 如果服務端啟動的是HOST是0.0.0.0, 那么客戶端可以是外機,可以是本機.本機可以是127.0.0.1, 也可以是localhost. 3. 如果服務端啟動的是HOST是127.0.0.1/localhost, 那么客戶端是不能外機,只能是本機.
客戶端使用方法:
Telnet:
客戶端可使用telnet客戶端.如: telnet 127.0.0.1 19910
編寫代碼:
客戶端可借助編程語言的Socket來實現. 可參考Test/test_client.php
驚鴻一瞥:
-
MeepoPS/config。ini是MeepoPS的配置文件。 采用和php。ini同樣的格式, ";"為注釋。
-
必須引入MeepoPS/index。php文件。 使用MeepoPS都是從 require_once 'MeepoPS/index。php' 開始的。
-
MeepoPS/Api/目錄下的文件為暴露給用戶的接口。 需要實例化接口類文件, MeepoPS的使用都是圍繞實例化接口文件后的對象來操作的。 實例化的時候傳入監聽的HOST和端口即可。
-
MeepoPS會以回調函數的方式來觸發您設置的業務邏輯。 比如新鏈接加入時會回調您設置的"Hello world", 再比如某個鏈接發送了消息"PING"時, 會回調您設置的返回消息"PONG"。
-
MeepoPS可以啟動多個實例, 每一次的new接口類文件都是一次實例化。
-
MeepoPS不但可以實例化多個接口類文件, 也可以實例化同一個接口類文件多次。 比如啟動了三個實例, 分別監聽了19910, 19911, 19912端口。
-
實例化接口類文件並進行了相關設置后, 調用\MeepoPS\runMeepoPS()即可啟動MeepoPS。
-
\MeepoPS\runMeepoPS()之后的所有代碼都將不會執行。
示例:
Example目錄下是示例案例,每一個目錄是一個獨立的項目,會不斷添加。