任何WEB應(yīng)用都是被動的,也就是說它不會主動向客戶端發(fā)送數(shù)據(jù),只有當WEB服務(wù)器接收到請求,才會向客戶端發(fā)送數(shù)據(jù)。
創(chuàng)新互聯(lián)建站專注于承德企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),商城網(wǎng)站制作。承德網(wǎng)站建設(shè)公司,為承德等地區(qū)提供建站服務(wù)。全流程按需求定制制作,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)
所以,不存在你所說的推送消息給客戶端。
但是客戶端可以反過來拉取消息,可以讓客戶端定時發(fā)送請求來獲取數(shù)據(jù)。
實現(xiàn)消息推送首先需要瀏覽器支持 websocket 協(xié)議,這是前提,然后再通過瀏覽器發(fā)起websocket 請求到服務(wù)器,建立一條連接,這是服務(wù)器端就可以通過這條連接向瀏覽器推送消息了。
服務(wù)器端對websocket的支持可以通過一些第三方庫來實現(xiàn),供參考
hoa/websocket網(wǎng)頁鏈接
swoole 庫
你說的應(yīng)該是服務(wù)端主動向客戶端推送消息, 這個只能使用Socket建立長連接來實現(xiàn)。
客戶端實現(xiàn)比較簡單, 大多數(shù)瀏覽器提供的應(yīng)該都有接口, 幾個方法就可以建立一個連接,然后進行消息監(jiān)聽就可以了,服務(wù)端實現(xiàn)稍微復(fù)雜點, 不過你根本不用自己寫那些底層代碼, php平臺上有一個庫叫 "Workerman", 里面所有功能已經(jīng)幫你實現(xiàn)好了, 你看看文檔就能直接調(diào)用了, 很簡單的。
獲取請求代碼如下:
#測試網(wǎng)址: ????
//獲取域名或主機地址
echo $_SERVER['HTTP_HOST']."
"; #localhost
//獲取網(wǎng)頁地址
echo $_SERVER['PHP_SELF']."
"; #/blog/testurl.php
//獲取網(wǎng)址參數(shù)
echo $_SERVER["QUERY_STRING"]."
"; #id=5
//獲取用戶代理
echo $_SERVER['HTTP_REFERER']."
";
//獲取完整的url
echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
#
//包含端口號的完整url
echo
http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
#
//只取路徑
$url='http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"];
echo dirname($url);
#
if (in_array("Mark", $people))
{
echo "匹配已找到";
}
else
{
echo "匹配未找到";
}