實(shí)現(xiàn)消息推送首先需要瀏覽器支持 websocket 協(xié)議,這是前提,然后再通過(guò)瀏覽器發(fā)起websocket 請(qǐng)求到服務(wù)器,建立一條連接,這是服務(wù)器端就可以通過(guò)這條連接向?yàn)g覽器推送消息了。
創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比杜爾伯特網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式杜爾伯特網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋杜爾伯特地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。
服務(wù)器端對(duì)websocket的支持可以通過(guò)一些第三方庫(kù)來(lái)實(shí)現(xiàn),供參考
hoa/websocket網(wǎng)頁(yè)鏈接
swoole 庫(kù)
APP客戶端建立監(jiān)聽(tīng),每個(gè)一段時(shí)間去請(qǐng)求服務(wù)端的數(shù)據(jù) 服務(wù)端根據(jù)手機(jī)設(shè)備推送信息,如極光推送php,怎么從服務(wù)器端向客戶端主動(dòng)發(fā)信息
獲取請(qǐng)求代碼如下:
#測(cè)試網(wǎng)址: ????
//獲取域名或主機(jī)地址
echo $_SERVER['HTTP_HOST']."
"; #localhost
//獲取網(wǎng)頁(yè)地址
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'];
#
//包含端口號(hào)的完整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 "匹配未找到";
}
你說(shuō)的應(yīng)該是服務(wù)端主動(dòng)向客戶端推送消息, 這個(gè)只能使用Socket建立長(zhǎng)連接來(lái)實(shí)現(xiàn)。
客戶端實(shí)現(xiàn)比較簡(jiǎn)單, 大多數(shù)瀏覽器提供的應(yīng)該都有接口, 幾個(gè)方法就可以建立一個(gè)連接,然后進(jìn)行消息監(jiān)聽(tīng)就可以了,服務(wù)端實(shí)現(xiàn)稍微復(fù)雜點(diǎn), 不過(guò)你根本不用自己寫(xiě)那些底層代碼, php平臺(tái)上有一個(gè)庫(kù)叫 "Workerman", 里面所有功能已經(jīng)幫你實(shí)現(xiàn)好了, 你看看文檔就能直接調(diào)用了, 很簡(jiǎn)單的。
PHP實(shí)現(xiàn)不了 除非前臺(tái) 不斷刷新請(qǐng)求后端 來(lái)判斷消息 你可以參考OURPHP
其實(shí)就是訪問(wèn)這個(gè)php文件,返回一段數(shù)據(jù),一般用json,然后安卓可以解析就行了了。走h(yuǎn)ttp協(xié)議。