anthill 是一個訊息中介軟體 以協程的高效效能為php轉推訊息到客戶端. php以socket協議進行訊息推送
anthill將此訊息轉推到websocket客戶端
應用場景: 當php服務端觸發訊息推送事件 以短訊息方式推送到anthill 再由anthill轉發客戶端
可以跨程式推送訊息 替代ajax輪詢方式(此服務應用場景不適於php與客戶端建立長連線通訊)
composer require stream/ant
windows
start /B (YOUR_PATH)vendor/stream/ant/anthill.exe
linux
(YOUR_PATH)vendor/stream/ant/anthill &
tips:
需要開啟防火牆 9303 9333埠為tcp 和 websocket,你可以在包ini.json自行修改埠
command:
iptables -A INPUT -p tcp --dport 9303 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 9303 -j ACCEPT
iptables -A INPUT -p tcp --dport 9333 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 9333 -j ACCEPT
service iptables save
建立物件 並註冊一個會話token 你可以儲存此token到客戶端斷開連線前都可以以此token進行訊息
推送服務
$ant = new Ant();
$token = $ant->prepare();
傳送訊息帶上相對應token
$ant->send($token,Structure::NOTICE_EVENT,"this is a message form php");
廣播 傳送到所有客戶端
$ant->send("",Structure::BROADCAST_EVENT,"this is a message form php");
關閉一個帶此token的客戶端
$ant->close($token);
open this (YOUR_PATH)vendor/stream/ant/example/client/index.html
本作品採用《CC 協議》,轉載必須註明作者和本文連結