php 如何加入即時推送的功能

來源:互聯網
上載者:User
這篇文章主要介紹了關於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!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.