workerman 實現訊息推送
workerman 實現訊息推送
2016年07月23日 09:21:05 悠悠傾我心 閱讀數:14806
WEB訊息推送框架
web-msg-sender是一款web長連線推送框架,採用PHPSocket.IO開發,基於WebSocket長連線通訊,如果瀏覽器不支援WebSocket則自動轉用comet推送。 通過後臺推送訊息,訊息可以即時推送到客戶端,非輪詢,實時性非常好,效能很高。
特點:
- 多瀏覽器支援
- 支援針對單個使用者推送訊息
- 支援向所有使用者推送訊息
- 長連線推送(websocket或者comet),訊息即時到達
- 支援線上使用者數實時統計展示
- 支援線上頁面數實時統計展示
- 支援跨域推送
下載
WEB訊息推送框架
Fork on Github 下載ZIP壓縮檔案 下載3407次
Windows版本下載
下載Win版本ZIP壓縮檔案Demo1:
接收訊息頁面:http://www.workerman.net:2123/
推送介面url:http://www.workerman.net:2121/?type=publish&to=uid&content=content
其中to為接收訊息的uid,如果傳空則向所有人推送訊息 content 為訊息內容
Demo2:
見本頁面頁尾線上統計部分,支援實時的線上人數和線上頁面統計
其它應用
WEB訊息推送框架
BrowserQuest PHP版本攝像頭視訊直播Thrift RPC 遠端呼叫框架Json RPC遠端呼叫框架聊天室框架統計監控系統PHP小蝌蚪實時互動遊戲 hotflappy bird 多人線上版遊戲
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 ); curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:")); $return = curl_exec ( $ch ); curl_close ( $ch ); var_export($return);
客戶端
javascript: https://github.com/socketio/socket.io-client
安卓:https://github.com/koush/AndroidAsync
IOS(objc): https://github.com/pkyeck/socket.IO-objc
IOS(swift):https://github.com/socketio/socket.io-client-swift
Java: https://github.com/socketio/socket.io-client-java
C++: https://github.com/socketio/socket.io-client-cpp
unity3d: https://github.com/NetEase/UnitySocketIO
Python: https://github.com/invisibleroads/socketIO-client
相關文章
- workerman做實時訊息推送,用過沒?
- 基於workerman實現的web訊息推送站內信功能Web
- Flutter websocket 實現訊息推送FlutterWeb
- PHP與反ajax推送,實現的訊息實時推送功能PHP
- Knative 實戰:基於 Kafka 實現訊息推送Kafka
- 基於 Hyperf 實現 RabbitMQ + WebSocket 訊息推送MQWeb
- 實時訊息推送整理
- PHP基於Redis訊息佇列實現的訊息推送的方法PHPRedis佇列
- Laravel 實現 Kafka 訊息推送與接收處理LaravelKafka
- 實時訊息推送方案-SSE
- WebSocket 實現伺服器訊息推送客戶端Web伺服器客戶端
- 訊息的即時推送——net實現、websocket實現以及socket.io實現Web
- 7種 實現web實時訊息推送的方案,7種!Web
- 小程式訂閱訊息推送(含原始碼)java實現小程式推送,springboo原始碼JavaSpring
- python 實現公眾號模板訊息推送(親測有效)Python
- WebSocket實現服務端推送訊息和聊天會話Web服務端會話
- App如何利用推送訊息有效實現拉新促活?APP
- 造輪子之訊息實時推送
- iOS使用觀察者模式實現推送訊息模組化iOS模式
- 在spring boot中訊息推送系統設計與實現Spring Boot
- 一個簡單API,一鍵實現多通道訊息推送API
- 微信雲託管 WebSocket 實戰:基於模版實現訊息推送Web
- 用 Laravel 自帶訊息模組搭建小程式實時推送訊息Laravel
- java實現 微信公眾號推送訊息 ,cv 就可執行!!!Java
- 3個步驟輕鬆整合Push Kit,實現App訊息推送APP
- 一起來實現單使用者登入 —— 訊息推送
- Android之訊息推送原理Android
- 搞掂釘釘訊息推送!
- laravel整合workerman實現websocket多端及時通訊LaravelWeb
- Android 訊息推送:第三方訊息推送平臺 詳細解析Android
- 【workerman】uniapp+thinkPHP5使用GatewayWorker實現實時通訊APPPHPGateway
- Spring Boot 整合 WebSocket 實現服務端推送訊息到客戶端Spring BootWeb服務端客戶端
- 使用pushplus+python實現亞馬遜到貨訊息推送微信Python亞馬遜
- Service Worker學習與實踐(三)——訊息推送
- 未讀訊息(小紅點),前端與 RabbitMQ實時訊息推送實踐,賊簡單~前端MQ
- 訊息推送背後的思考
- 番外訊息推送篇_05
- uni-app訊息推送方案APP