一個基於WebSocket的WEB訊息推送架構

來源:互聯網
上載者:User
一個基於WebSocket的WEB訊息推送架構

web-msg-sender是一款web長串連推送架構,採用PHPSocket.IO開發,基於WebSocket長串連通訊,如果瀏覽器不支援WebSocket則自動轉用comet推送。 通過後台推送訊息,訊息可以即時推送到用戶端,非輪詢,即時性非常好,效能很高。

特點:

多瀏覽器支援

支援針對單個使用者推送訊息

支援向所有使用者推送訊息

長串連推送(websocket或者comet),訊息即時到達

支援線上使用者數即時統計展示

支援線上頁面數即時統計展示

支援跨域推送

下載

https://github.com/walkor/web-msg-sender

WEB訊息推送架構

接收訊息頁面:http://www.workerman.net:2123/

推送介面url:http://www.workerman.net:2121/?type=publish&to=uid&content=content
其中to為接收訊息的uid,如果傳空則向所有人推送訊息 content 為訊息內容

Linux環境安裝啟動

1、下載web-msg-sender,並解壓縮到任意目錄

2、啟動workermanphp start.php start -d如

3、瀏覽器訪問連接埠http://ip:2123或者http://網域名稱:2123,例如 http://workerman.net:2123(如果無法訪問請檢查伺服器防火牆)

前端測試:

支援跨域推送,開發人員可以不用建立服務端,直接使用線上的推送服務測試,只要引入js檔案並設定下連接埠及回調即可,例如在任意網站中加入如下代碼即可收到訊息並統計資料:

<script src='http://cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script><script>    // 串連服務端    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 );$return = curl_exec ( $ch );curl_close ( $ch );var_export($return);

相關文章:

開發訊息推送實現技巧(附代碼)

.NET 開發自動內容回複執行個體代碼

在Java中通過websocket實現訊息推送的實現代碼詳解

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.