分類  >  WEB開發>PHP >

怎麼用 php代碼實現 ios 等多台設備的推送信息功能

tags:    時間:2013-12-12 13:28:55
如何用 php代碼實現 ios 等多台設備的推送信息功能?
求解如何用 php代碼實現 ios 等設備的推送信息功能呢?

可能有6-10萬的終端設備都需要接收到推送信息,執行一次,實現多台設備都能接收到信息。

路過的給點有用的建議,謝謝啦!!!

------解決方案--------------------
這個用php不好實現吧。
肯定不建議用長連接一直連著,直到有有消息就返回給用戶,這樣的話伺服器壓力肯定很大。
建議可以用心跳來實現這個功能,客戶端瀏覽器定時向伺服器獲取是否有最新消息。

另外,如果不是php,比如python、nodejs、c++等實現後台,可以採用長輪詢。
------解決方案--------------------
這不是 php 能做到的!
php 是伺服器端腳本,而不是伺服器,更不是網路操作系統

你只不過是需要套用一下移動通訊的操作系統就能實現你的目標

------解決方案--------------------
你要源代碼自己去移動版->iphone,正好有個壇友發了個你需要得帖子
我也可以跟你說說我怎麼做的,其實很簡單,主要是用蘋果開發賬號生成證書那裡要搞搞。
步驟1
-------
首先你得用php在服務端開個介面,提供給iphone手機註冊device_token,也就是裝了你應用的手機會向這個介面做一個http請求,把每台機器的device_token以及一些參數提交過來,然後你用php接收,存到資料庫

步驟2
-----------
用php讀數據,把註冊的device_token從資料庫讀出來,拼接成一串規定格式的串,帶上生成的蘋果證書,往蘋果提供的推送服務api做一個socket請求

關鍵代碼1:

stream_context_set_option($ctx, 'ssl', 'local_cert', $pemFile);//$pemFile為證書文件,這個你自己上網找找生成步驟,你必須得有個apple開發帳號
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);
 
// Open a connection to the APNS server,推送服務api,以下是沙箱環境
$fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT
------解決方案--------------------
STREAM_CLIENT_PERSISTENT, $ctx);

關健代碼2:
		
// Create the payload body
$body['aps'] = array(
'alert' => array(
            'body' => $message,
//'action-loc-key' => 'Bango App',
        ),
    'badge' => $badge,
'sound' => 'oven.caf',
);
                $deviceTokens = array();
$payload = FMFactory::GetJson()->encode($body);

推薦閱讀文章

Bookmark the permalink ,來源:互聯網