Example #1
0
 /**
  * @param Message|MessageInterface $message
  * @return Response
  * @throws \Exception
  */
 public function send(MessageInterface $message)
 {
     if (!$message instanceof Message) {
         throw new \Exception("Receivers should be list od APNS devices");
     }
     $this->connect();
     $data = $message->json();
     curl_setopt($this->curl, CURLOPT_POSTFIELDS, $data);
     $result = Response::fromCurl($this->curl);
     return $result;
 }
Example #2
0
 /**
  * @param Message|MessageInterface $message
  * @return Response
  * @throws \Exception
  */
 public function send(MessageInterface $message)
 {
     if (!$message instanceof Message) {
         throw new \Exception("Receivers should be list of APNS devices");
     }
     /** @var Message $message */
     $receivers = $message->receivers;
     $results = new Response();
     foreach ($receivers as $id => $receiver) {
         /** @var Device $receiver */
         $this->connect();
         curl_setopt($this->curl, CURLOPT_URL, $this->baseUrl . $receiver->path);
         $data = $message->json();
         $headers = [];
         $headers[] = 'content-length: ' . strlen($data);
         $headers[] = 'apns-topic: ' . $message->topic;
         $headers[] = 'apns-expiration: ' . ($message->time_to_live ? (int) $message->time_to_live + time() : 0);
         switch ($message->priority) {
             case 5:
             case 'normal':
                 $headers[] = 'apns-priority: ' . 5;
                 break;
             case 10:
             case 'high':
                 $headers[] = 'apns-priority: ' . 10;
                 break;
             default:
                 $headers[] = 'apns-priority: ' . 10;
         }
         curl_setopt($this->curl, CURLOPT_POSTFIELDS, $data);
         curl_setopt($this->curl, CURLOPT_HTTPHEADER, $headers);
         $results[] = [$receiver, CurlResponse::fromCurl($this->curl)];
         $this->close();
     }
     return $results;
 }