這篇文章主要介紹了關於php 如何加入即時推送的功能,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
開啟瀏覽器保持與伺服器握手的websocket
之前用workerman接過很花時間,現在workerman對其代碼做了最佳化-》https://www.workerman.net/web-sender
效果1:
接收訊息頁面:http://demos.workerman.net/web-sender/
推送介面url:http://demos.workerman.net:2121/?type=publish&to=uid&content=content
其中to為接收訊息的uid,如果傳空則向所有人推送訊息 content 為訊息內容
效果2:
見本頁面頁尾線上統計部分,支援即時的線上人數和線上頁面統計
其它應用
vmstat伺服器狀態監控服務
WEB訊息推送架構
BrowserQuest PHP版本網路攝影機ApsaraVideo for LiveThrift RPC 遠程調用架構Json RPC遠程調用架構聊天室架構統計監控系統PHP小蝌蚪即時互動遊戲 hotflappy bird 多人線上版遊戲
安裝啟動
首先:參考手冊檢查/安裝workerman環境
1、下載:(下載web-msg-sender,並解壓縮到任意目錄
2、啟動:linux系統cd到到架構目錄裡運行php start.php start -d
。windows系統進入到架構目錄裡雙擊start_for_win.bat檔案啟動。
3、測試:瀏覽器訪問連接埠http://ip:2123或者http://網域名稱:2123,例如 http://workerman.net:2123(如果無法訪問請檢查伺服器防火牆,如果是雲端服務器還要設定安全性群組)
前端測試:
<script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script><script> // 串連服務端,workerman.net:2120換成實際部署web-msg-sender服務的網域名稱或者ip var socket = io('http://workerman.net:2120'); // uid可以是自己網站的使用者id,以便針對uid推送以及統計線上人數 uid = 123; // socket串連後以uid登入 socket.on('connect', function(){ socket.emit('login', uid); }); // 後端推送來訊息時 socket.on('new_msg', function(msg){ console.log("收到訊息:"+msg); }); // 後端推送來線上資料時 socket.on('update_online_count', function(online_stat){ console.log(online_stat); });</script>
後端調用api向任意使用者推送:
<?php// 指明給誰推送,為空白表示向所有線上使用者推送$to_uid = "";// 推送的url地址,使用自己的伺服器位址$push_api_url = "http://workerman.net:2121/";$post_data = array( "type" => "publish", "content" => "這個是推送的測試資料", "to" => $to_uid, );$ch = curl_init ();curl_setopt ( $ch, CURLOPT_URL, $push_api_url );curl_setopt ( $ch, CURLOPT_POST, 1 );curl_setopt ( $ch, CURLOPT_HEADER, 0 );curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));$return = curl_exec ( $ch );curl_close ( $ch );var_export($return);
在linux跑時,可能需要php的posix和pcntl擴充
WorkerMan的推送 添加到YII2 [ 2.0 版本 ]
以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!