本篇內容主要講解“php怎么實現(xiàn)實時接收數(shù)據”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“php怎么實現(xiàn)實時接收數(shù)據”吧!
創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都做網站、網站制作、企業(yè)官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯(lián)網時代的玉泉網站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!
1.發(fā)布訂閱的Pub/Sub
發(fā)布訂閱(Pub/Sub):目前廣泛使用的通信模型,它采用事件作為基本的通信機制,提供大規(guī)模系統(tǒng)所要求的松散耦合的交互模式:訂閱者(如客戶端)以事件訂閱的方式表達出它有興趣接收的一個事件或一類事件;發(fā)布者(如服務器)可將訂閱者感興趣的事件隨時通知相關訂閱者------是不是與設計模式里面的觀察者模式一個媽媽生的?
redis的Pub/Sub非常非常簡單,運行穩(wěn)定并且快速。支持模式匹配,能夠實時訂閱與取消頻道。比如很多用Pub/Sub構建的實時聊天系統(tǒng)、聊天群發(fā)的例子。
Redis 客戶端可以訂閱任意數(shù)量的頻道。
Redis提供了發(fā)布訂閱功能,可以用于消息的傳輸,Redis的發(fā)布訂閱機制包括三個部分,發(fā)布者,訂閱者和Channel。
發(fā)布者和訂閱者都是Redis客戶端,Channel則為Redis服務器端,發(fā)布者將消息發(fā)送到某個的頻道,訂閱了這個頻道的訂閱者就能接收到這條消息。Redis的這種發(fā)布訂閱機制與基于主題的發(fā)布訂閱類似,Channel相當于主題。
2.發(fā)布訂閱的使用場景
最經典的應用場景就是微博和公眾號,任何粉絲只要關注(訂閱)了某一個人的微博或者公眾號,該微博或者公眾號只有有狀態(tài)更新,都會將消息推送(發(fā)布)到粉絲。
發(fā)布訂閱的執(zhí)行過程是由我們的發(fā)布者跟我們的頻道去建立關系,然后把這個消息通過長連接方式發(fā)送過去。同時這個時候我們還有一個訂閱者,我們也需要去訂閱我們的內容,如果說我們訂閱了,那么當我們的頻道收到了某個消息的時候,我們會及時的去給訂閱者做到消息的推送。
那么這里的連接就會涉及到我們的長連接和短連接,他們之間有什么區(qū)別呢?
3.PHP實現(xiàn)實時發(fā)布訂閱
subscribe(消息訂閱端 sub.php):在終端執(zhí)行sub.php命令,就會處在監(jiān)聽狀態(tài),等待發(fā)布者發(fā)布消息進行處理。
$redis=new Redis();
$res=$redis->pconnect('127.0.0.1', 6379,0);
$redis->subscribe(array('luke'), 'callback');
// 回調函數(shù),這里寫處理邏輯
function callback($instance, $channelName, $message) {
echo $channelName, "==>", $message,PHP_EOL;
}
publish(消息發(fā)布端 pub.php):
$redis=new Redis();
// 第一個參數(shù)為redis服務器的ip,第二個為端口
$res=$redis->connect('127.0.0.1', 6379);
// luke為發(fā)布的頻道名稱,hello,world為發(fā)布的消息
$res=$redis->publish('luke','hello,world');
4.redis可以實現(xiàn)發(fā)布訂閱和消息隊列的功能,兩者的區(qū)別在于:
1)redis的訂閱者可以是多個,且可以同時處理發(fā)布上來的消息,如果訂閱者不在線(服務沒有啟動)消息將丟失,消息沒有持久化。發(fā)布和訂閱是一塊執(zhí)行的,缺少一個直接忽略這個消息
2)消息隊列只能有一個客戶端來處理,處理完之后消息就被標記或刪除,即使服務端沒有啟動消息也不會丟失
3)兩者的使用場景要根據業(yè)務數(shù)據的準確度,敏感性決定,比如日志就可以用redis發(fā)布訂閱來實現(xiàn),丟失一點也沒有關系
到此,相信大家對“php怎么實現(xiàn)實時接收數(shù)據”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!
文章標題:php怎么實現(xiàn)實時接收數(shù)據
當前網址:http://jinyejixie.com/article8/peosop.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供Google、網站收錄、網站建設、標簽優(yōu)化、手機網站建設、電子商務
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)