簡體   English   中英

php推送通知APNS沙箱

[英]php push notification APNS sandbox

我使用自編腳本通過PHP向APNS發送推送通知。 我正試圖從沙盒得到響應,我總是得到0.這就是推送成功的意思,但即使故意造成錯誤,我仍然會得到0。 如果在deviceToken中輸入拼寫錯誤,我應該得到error = 8但是stil得到0。

問題是,這是他第一次使用沙箱來測試推送,我想知道沙箱是否真的發送通知或者只是將其推送到dev / null ...

這是我使用的一些代碼:

public function sendMessage($deviceToken, $message)
{
    $streamContext = stream_context_create();
    stream_context_set_option($streamContext, 'ssl', 'local_cert', self::APNSCERT);

    $apns = $this->_connectSocket($streamContext);

    $payload = array();
    $payload['aps'] = array('alert' => utf8_encode($message), 'badge' => 1, 'sound' => 'default');
    $payload = json_encode($payload);

    $apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $deviceToken)) . chr(0) . chr(strlen($payload)) . $payload;

    $success=0;
    $retry=0;
    while($success==0 && $retry<=3)
    {
        if (!@fwrite($apns, $apnsMessage))
        {
        var_dumd($this->_error.)
        var_dump($this->_errorString);

           $apns = $this->_connectSocket($streamContext);
           ++$retry;
        }
        else
        {
            $success=1;
        }
    }
    usleep(2);
    fclose($apns);
}

protected function _connectSocket($streamContext)
{
    if (!$apns = stream_socket_client('ssl://'.self::APNSHOST.':'.self::APNSPORT, $this->_error, $this->_errorString, 5, STREAM_CLIENT_CONNECT, $streamContext))
    {
        var_dumd($this->_error.)
        var_dump($this->_errorString);
        sleep(1);
    }
    return $apns;
}

最后編輯:代碼格式修正

改變第二個功能//嘗試這個功能,我做了類似的事情

protected function _connectSocket($streamContext)
{
if (!$apns = stream_socket_client('ssl://'.self::APNSHOST.':'.self::APNSPORT,
 $this->_error, $this->_errorString, 5, STREAM_CLIENT_CONNECT, $streamContext))
     {
         exit("Failed to connect: $this->_error $this->_errorString" . PHP_EOL);
     }
else
     {
         echo 'Connected to APNS' . PHP_EOL;
         return $apns;
     }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM