PHP 訊息中介軟體 工具庫

hikki發表於2019-05-24

專案地址

 anthill 是一個訊息中介軟體 以協程的高效效能為php轉推訊息到客戶端. php以socket協議進行訊息推送 
 anthill將此訊息轉推到websocket客戶端 
 應用場景: 當php服務端觸發訊息推送事件 以短訊息方式推送到anthill 再由anthill轉發客戶端
 可以跨程式推送訊息 替代ajax輪詢方式(此服務應用場景不適於php與客戶端建立長連線通訊)

example

 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 協議》,轉載必須註明作者和本文連結

相關文章