Services_Apns
[ class tree: Services_Apns ] [ index: Services_Apns ] [ all elements ]

Source for file Message.php

Documentation is available at Message.php

  1. <?php
  2.  
  3. /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
  4.  
  5. /**
  6.  * This file contains client class used to send push
  7.  * notifications using Apple Push Notifications Service gateway.
  8.  *
  9.  * This file contaions client class which allows to send
  10.  * Notifications to iOS Based device using the
  11.  * Apple Push Notifications Message Gateway.
  12.  *
  13.  * PHP version 5
  14.  *
  15.  * LICENSE:
  16.  *
  17.  * Copyright (c) 2013, Yahav Gindi Bar; Pear Technology Investments, Ltd.
  18.  * All rights reserved.
  19.  *
  20.  * Redistribution and use in source and binary forms, with or without
  21.  * modification, are permitted provided that the following conditions
  22.  * are met:
  23.  *
  24.  *  * Redistributions of source code must retain the above copyright
  25.  *    notice, this list of conditions and the following disclaimer.
  26.  *  * Redistributions in binary form must reproduce the above copyright
  27.  *    notice, this list of conditions and the following disclaimer in
  28.  *    the documentation and/or other materials provided with the distribution.
  29.  *  * Neither the name of the PHP_LexerGenerator nor the names of its
  30.  *    contributors may be used to endorse or promote products derived
  31.  *    from this software without specific prior written permission.
  32.  *
  33.  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
  34.  * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
  35.  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  36.  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  37.  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  38.  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  39.  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  40.  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
  41.  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  42.  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  43.  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  44.  *
  45.  * @category  Services
  46.  * @package   Services_Apns
  47.  * @author    Yahav Gindi Bar <g.b.yahav@gmail.com>
  48.  * @copyright 2013 Yahav Gindi Bar
  49.  * @license   http://www.php.net/license/3_01.txt  PHP License 3.01
  50.  * @version   SVN: $Id$
  51.  * @link      https://github.com/YahavGB/Services_APNS
  52.  */
  53.  
  54. /// {{{ Load Services_Apns_Client
  55.  
  56. /**
  57.  * Load the abstraction client layer
  58.  */
  59. require_once 'Services/Apns/Client.php';
  60.  
  61. /// }}}
  62.  
  63. /// {{{ Load Services_Apns_Message
  64.  
  65. /**
  66.  * Load the message entity
  67.  */
  68. require_once 'Services/Apns/Message.php';
  69.  
  70. /// }}}
  71.  
  72. // {{{ Services_Apns_Client_Message
  73.  
  74. /**
  75.  * Client class used to query Apple Push Notifications Service with messages.
  76.  * Messages that'll be transfferd by this class will be received on
  77.  * the registered clients devices.
  78.  *
  79.  * @category  Services
  80.  * @package   Services_Apns
  81.  * @author    Yahav Gindi Bar <g.b.yahav@gmail.com>
  82.  * @copyright 2013 Yahav Gindi Bar
  83.  * @license   http://www.opensource.org/licenses/bsd-license.php The BSD License
  84.  * @version   Release: 0.1.0
  85.  * @link      https://github.com/YahavGB/Services_APNS
  86.  */
  87. {
  88.     /// {{{ getApnsProductionUri()
  89.     
  90.     /**
  91.     * (non-PHPdoc)
  92.     *
  93.     * @see Services_ApnsAbstractGateway::getApnsProductionUri()
  94.     * @return string 
  95.     */
  96.     protected function getApnsProductionUri()
  97.     {
  98.         return 'ssl://gateway.push.apple.com:2195';
  99.     }
  100.     
  101.     /// }}}
  102.     
  103.     /// {{{ getApnsSandboxUri()
  104.     
  105.     /**
  106.     * (non-PHPdoc)
  107.     * 
  108.     * @see Services_ApnsAbstractGateway::getApnsSandboxUri()
  109.     * @return string 
  110.     */
  111.     protected function getApnsSandboxUri()
  112.     {
  113.         return 'ssl://gateway.sandbox.push.apple.com:2195';
  114.     }
  115.     
  116.     /// }}}
  117.     
  118.     /// {{{ sendMessage($message)
  119.     
  120.     /**
  121.      * Send a message to APNS gateway
  122.      * 
  123.      * @param Services_Apns_Message $message The message to assign
  124.      * 
  125.      * @return array 
  126.      */
  127.     public function sendMessage(Services_Apns_Message $message)
  128.     {
  129.         $connected $this->isConnected();
  130.         if (!$connected{
  131.             $this->connect();
  132.         }
  133.     
  134.         $ret $this->write($message->getPayloadAsJson());
  135.         if ($ret === false{
  136.             throw new Services_Apns_Exception(
  137.                 'Apple Push Notifications Service is not avialable.'
  138.             );
  139.         }
  140.         
  141.         $ret unpack('Ccmd/Cerrno/Nid'$this->read());
  142.         
  143.         if (!$connected{
  144.             $this->close();
  145.         }
  146.         
  147.         return $ret;
  148.     }
  149.     
  150.     /// }}}
  151. }
  152.  
  153. // }}}
  154.  
  155. /*
  156.  * Local variables:
  157.  * tab-width: 4
  158.  * c-basic-offset: 4
  159.  * c-hanging-comment-ender-p: nil
  160.  * End:
  161.  */

Documentation generated on Tue, 19 Feb 2013 14:30:03 +0000 by phpDocumentor 1.4.3. PEAR Logo Copyright © PHP Group 2004.