MeepoPS——輕量級 Socket 服務


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手冊-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

驚鴻一瞥:

  1. MeepoPS/config。ini是MeepoPS的配置文件。 采用和php。ini同樣的格式, ";"為注釋。

  2. 必須引入MeepoPS/index。php文件。 使用MeepoPS都是從 require_once 'MeepoPS/index。php' 開始的。

  3. MeepoPS/Api/目錄下的文件為暴露給用戶的接口。 需要實例化接口類文件, MeepoPS的使用都是圍繞實例化接口文件后的對象來操作的。 實例化的時候傳入監聽的HOST和端口即可。

  4. MeepoPS會以回調函數的方式來觸發您設置的業務邏輯。 比如新鏈接加入時會回調您設置的"Hello world", 再比如某個鏈接發送了消息"PING"時, 會回調您設置的返回消息"PONG"。

  5. MeepoPS可以啟動多個實例, 每一次的new接口類文件都是一次實例化。

  6. MeepoPS不但可以實例化多個接口類文件, 也可以實例化同一個接口類文件多次。 比如啟動了三個實例, 分別監聽了19910, 19911, 19912端口。

  7. 實例化接口類文件並進行了相關設置后, 調用\MeepoPS\runMeepoPS()即可啟動MeepoPS。

  8. \MeepoPS\runMeepoPS()之后的所有代碼都將不會執行。

示例:

Example目錄下是示例案例,每一個目錄是一個獨立的項目,會不斷添加。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM