最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Yii1.1框架實(shí)現(xiàn)PHP極光推送消息通知功能

 更新時(shí)間:2018年09月06日 16:39:03   作者:夢(mèng)想是什么  
這篇文章主要介紹了Yii1.1框架實(shí)現(xiàn)PHP極光推送消息通知的相關(guān)資料,需要的朋友可以參考下

一、下載極光推送PHP SDK,解壓后放在/protected/components/目錄下,如下圖所示:

二、完善修改下官方的demo例子,我這里復(fù)制一份demo,改為NotifyPush.php,如下代碼:

<?php
require dirname(__FILE__) . '/jpush-api-php-client/autoload.php';
use JPush\Client as JPush;
class NotifyPush {
 static function pushAlias($alias,$ticket='消息提醒',$alert){
  $appKey=Yii::app()->params['push']['AppKey'];
  $appMasterSecret=Yii::app()->params['push']['AppMasterSecret'];
  $production_mode=Yii::app()->params['push']['production_mode'];
  $client = new JPush($appKey, $appMasterSecret);
// 完整的推送示例
// 這只是使用樣例,不應(yīng)該直接用于實(shí)際生產(chǎn)環(huán)境中 !!
  try {
   $response = $client->push()
    ->setPlatform(array('ios', 'android'))
    // 一般情況下,關(guān)于 audience 的設(shè)置只需要調(diào)用 addAlias、addTag、addTagAnd 或 addRegistrationId
    // 這四個(gè)方法中的某一個(gè)即可,這里僅作為示例,當(dāng)然全部調(diào)用也可以,多項(xiàng) audience 調(diào)用表示其結(jié)果的交集
    // 即是說一般情況下,下面三個(gè)方法和沒有列出的 addTagAnd 一共四個(gè),只適用一個(gè)便可滿足大多數(shù)的場(chǎng)景需求
    ->addAlias($alias)
    ->setNotificationAlert($alert)
    ->iosNotification($ticket, array(
     'sound' => 'sound.caf',
     // 'badge' => '+1',
     // 'content-available' => true,
     // 'mutable-content' => true,
     'category' => 'jiguang',
     'extras' => array(
      'key' => 'value',
      'jiguang'
     ),
    ))
    ->androidNotification($ticket, array(
     'title' => $alert,
     // 'build_id' => 2,
     'extras' => array(
      'key' => 'value',
      'jiguang'
     ),
    ))
    ->message($alert, array(
     'title' => $alert,
     // 'content_type' => 'text',
     'extras' => array(
      'key' => 'value',
      'jiguang'
     ),
    ))
    ->options(array(
     // sendno: 表示推送序號(hào),純粹用來作為 API 調(diào)用標(biāo)識(shí),
     // API 返回時(shí)被原樣返回,以方便 API 調(diào)用方匹配請(qǐng)求與返回
     // 這里設(shè)置為 100 僅作為示例
     // 'sendno' => 100,
     // time_to_live: 表示離線消息保留時(shí)長(zhǎng)(秒),
     // 推送當(dāng)前用戶不在線時(shí),為該用戶保留多長(zhǎng)時(shí)間的離線消息,以便其上線時(shí)再次推送。
     // 默認(rèn) 86400 (1 天),最長(zhǎng) 10 天。設(shè)置為 0 表示不保留離線消息,只有推送當(dāng)前在線的用戶可以收到
     // 這里設(shè)置為 1 僅作為示例
     // 'time_to_live' => 1,
     // apns_production: 表示APNs是否生產(chǎn)環(huán)境,
     // True 表示推送生產(chǎn)環(huán)境,F(xiàn)alse 表示要推送開發(fā)環(huán)境;如果不指定則默認(rèn)為推送生產(chǎn)環(huán)境
     'apns_production' => $production_mode,
     // big_push_duration: 表示定速推送時(shí)長(zhǎng)(分鐘),又名緩慢推送,把原本盡可能快的推送速度,降低下來,
     // 給定的 n 分鐘內(nèi),均勻地向這次推送的目標(biāo)用戶推送。最大值為1400.未設(shè)置則不是定速推送
     // 這里設(shè)置為 1 僅作為示例
     // 'big_push_duration' => 1
    ))
    ->send();
   print_r($response);
  } catch (\JPush\Exceptions\APIConnectionException $e) {
   // try something here
   print $e;
  } catch (\JPush\Exceptions\APIRequestException $e) {
   // try something here
   print $e;
  }
 }
 static function pushAll($ticket='消息提醒',$alert){
  $appKey=Yii::app()->params['push']['AppKey'];
  $appMasterSecret=Yii::app()->params['push']['AppMasterSecret'];
  $production_mode=Yii::app()->params['push']['production_mode'];
  $client = new JPush($appKey, $appMasterSecret);
// 完整的推送示例
// 這只是使用樣例,不應(yīng)該直接用于實(shí)際生產(chǎn)環(huán)境中 !!
  try {
   $response = $client->push()
    ->setPlatform(array('ios', 'android'))
    ->setAudience('all')
    // 一般情況下,關(guān)于 audience 的設(shè)置只需要調(diào)用 addAlias、addTag、addTagAnd 或 addRegistrationId
    // 這四個(gè)方法中的某一個(gè)即可,這里僅作為示例,當(dāng)然全部調(diào)用也可以,多項(xiàng) audience 調(diào)用表示其結(jié)果的交集
    // 即是說一般情況下,下面三個(gè)方法和沒有列出的 addTagAnd 一共四個(gè),只適用一個(gè)便可滿足大多數(shù)的場(chǎng)景需求
    ->setNotificationAlert($alert)
    ->iosNotification($ticket, array(
     'sound' => 'sound.caf',
     // 'badge' => '+1',
     // 'content-available' => true,
     // 'mutable-content' => true,
     'category' => 'jiguang',
     'extras' => array(
      'key' => 'value',
      'jiguang'
     ),
    ))
    ->androidNotification($ticket, array(
     'title' => $alert,
     // 'build_id' => 2,
     'extras' => array(
      'key' => 'value',
      'jiguang'
     ),
    ))
    ->message($alert, array(
     'title' => $alert,
     // 'content_type' => 'text',
     'extras' => array(
      'key' => 'value',
      'jiguang'
     ),
    ))
    ->options(array(
     // sendno: 表示推送序號(hào),純粹用來作為 API 調(diào)用標(biāo)識(shí),
     // API 返回時(shí)被原樣返回,以方便 API 調(diào)用方匹配請(qǐng)求與返回
     // 這里設(shè)置為 100 僅作為示例
     // 'sendno' => 100,
     // time_to_live: 表示離線消息保留時(shí)長(zhǎng)(秒),
     // 推送當(dāng)前用戶不在線時(shí),為該用戶保留多長(zhǎng)時(shí)間的離線消息,以便其上線時(shí)再次推送。
     // 默認(rèn) 86400 (1 天),最長(zhǎng) 10 天。設(shè)置為 0 表示不保留離線消息,只有推送當(dāng)前在線的用戶可以收到
     // 這里設(shè)置為 1 僅作為示例
     // 'time_to_live' => 1,
     // apns_production: 表示APNs是否生產(chǎn)環(huán)境,
     // True 表示推送生產(chǎn)環(huán)境,F(xiàn)alse 表示要推送開發(fā)環(huán)境;如果不指定則默認(rèn)為推送生產(chǎn)環(huán)境
     'apns_production' => $production_mode,
     // big_push_duration: 表示定速推送時(shí)長(zhǎng)(分鐘),又名緩慢推送,把原本盡可能快的推送速度,降低下來,
     // 給定的 n 分鐘內(nèi),均勻地向這次推送的目標(biāo)用戶推送。最大值為1400.未設(shè)置則不是定速推送
     // 這里設(shè)置為 1 僅作為示例
     // 'big_push_duration' => 1
    ))
    ->send();
   print_r($response);
  } catch (\JPush\Exceptions\APIConnectionException $e) {
   // try something here
   print $e;
  } catch (\JPush\Exceptions\APIRequestException $e) {
   // try something here
   print $e;
  }
 }
}

三、調(diào)用NotifyPush.php里的方法,實(shí)現(xiàn)推送,如下代碼:

class CronNotifyPushCommand extends CConsoleCommand{
 public $keys=array();
 public function init(){
  parent::init();
 }
 public function actionIndex(){
  echo 'start CronNotifyPushCommand '.chr(10);
  if(!Yii::app()->params['push']['push_status']){
   echo 'push status disabled';die();
  }
  $rkey='message_notify_list';
  $waitTotals=Fredis::model()->redis->lsize($rkey);
  echo 'wait totals:'.$waitTotals.chr(10);
  $waitResult=true;
  $i=0;
  while($waitResult) {$i++;
   echo $i.'/'.$waitTotals.' wait to do'.chr(10);
   $waitResult=Fredis::model()->redis->rpop($rkey);
   if(!$waitResult) {
    continue;
   }
   $db_data=unserialize($waitResult);var_dump($db_data);
   $message_content=$db_data['message_content'];
   $uid=$db_data['uid'];
   $alias=$uid;
   if($uid==0){
    NotifyPush::pushAll($message_content, $message_content);
   }else {
    NotifyPush::pushAlias($alias, $message_content, $message_content);
   }
  }
  echo 'end'.chr(10);
 }
}

總結(jié)

以上所述是小編給大家介紹的Yii1.1框架實(shí)現(xiàn)PHP極光推送消息通知,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • php中的比較運(yùn)算符詳解

    php中的比較運(yùn)算符詳解

    如果比較一個(gè)整數(shù)和字符串,則字符串會(huì)被轉(zhuǎn)換為整數(shù)。如果比較兩個(gè)數(shù)字字符串,則作為整數(shù)比較。此規(guī)則也適用于 switch 語句
    2013-10-10
  • 獲取PHP警告錯(cuò)誤信息的解決方法

    獲取PHP警告錯(cuò)誤信息的解決方法

    本篇文章是對(duì)獲取PHP警告錯(cuò)誤信息的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • PHPStrom 新建FTP項(xiàng)目以及在線操作教程

    PHPStrom 新建FTP項(xiàng)目以及在線操作教程

    PhpStorm是一個(gè)輕量級(jí)且便捷的PHP IDE,其提供的智能代碼補(bǔ)全,快速導(dǎo)航以及即時(shí)錯(cuò)誤檢查等功能大大提高了編碼效率。它是一款商業(yè)的 PHP 集成開發(fā)工具,以其獨(dú)特的開發(fā)便利性,短時(shí)間內(nèi)贏得了大量PHPer的青睞。今天我們來詳細(xì)學(xué)習(xí)下FTP相關(guān)的操作
    2016-10-10
  • php中hashtable實(shí)現(xiàn)示例分享

    php中hashtable實(shí)現(xiàn)示例分享

    對(duì)php內(nèi)核有一定了解的人應(yīng)該都知道php的精髓就是HashTable,這篇文章主要介紹了php中hashtable實(shí)現(xiàn)示例,需要的朋友可以參考下
    2014-02-02
  • laravel異步監(jiān)控定時(shí)調(diào)度器實(shí)例詳解

    laravel異步監(jiān)控定時(shí)調(diào)度器實(shí)例詳解

    這篇文章主要給大家介紹了關(guān)于laravel異步監(jiān)控定時(shí)調(diào)度器的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用laravel具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • 淺談laravel框架與thinkPHP框架的區(qū)別

    淺談laravel框架與thinkPHP框架的區(qū)別

    今天小編就為大家分享一篇淺談laravel框架與thinkPHP框架的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所這。一起跟隨小編過來看看吧
    2019-10-10
  • PHP刪除字符串中非字母數(shù)字字符方法總結(jié)

    PHP刪除字符串中非字母數(shù)字字符方法總結(jié)

    在本篇文章里小編給大家分享了關(guān)于PHP刪除字符串中非字母數(shù)字字符方法和知識(shí)點(diǎn),有需要的朋友們學(xué)習(xí)下。
    2019-01-01
  • 如何在centos8自定義目錄安裝php7.3

    如何在centos8自定義目錄安裝php7.3

    在本文中我們將給大家介紹如何在centos8自定義目錄安裝php7.3,在選擇要安裝的PHP版本之前,請(qǐng)確保你的應(yīng)用程序支持它,我們還將向你展示如何將PHP與Nginx和Apache集成,感興趣的朋友跟隨小編一起看看吧
    2019-11-11
  • 在laravel5.2中實(shí)現(xiàn)點(diǎn)擊用戶頭像更改頭像的方法

    在laravel5.2中實(shí)現(xiàn)點(diǎn)擊用戶頭像更改頭像的方法

    今天小編就為大家分享一篇在laravel5.2中實(shí)現(xiàn)點(diǎn)擊用戶頭像更改頭像的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • php提取身份證號(hào)碼中的生日日期以及驗(yàn)證是否為成年人的函數(shù)

    php提取身份證號(hào)碼中的生日日期以及驗(yàn)證是否為成年人的函數(shù)

    本篇文章使用php技術(shù)提取身份證號(hào)碼中的生日日期來判斷是否是未成年人的一個(gè)函數(shù)。下面小編把代碼分享給大家,供大家參考
    2015-09-09

最新評(píng)論

左云县| 浦城县| 岳西县| 金山区| 巴里| 永济市| 高密市| 丹阳市| 峡江县| 贵港市| 隆回县| 扎赉特旗| 潞城市| 鹰潭市| 出国| 全州县| 体育| 东丰县| 淮阳县| 邯郸县| 潞西市| 图木舒克市| 博兴县| 辽中县| 德庆县| 潼关县| 庄河市| 孙吴县| 石棉县| 涪陵区| 贺州市| 商南县| 郧西县| 临清市| 盐津县| 渭源县| 平南县| 桑日县| 靖宇县| 当雄县| 清苑县|