169 lines
5.3 KiB
PHP
169 lines
5.3 KiB
PHP
<?php
|
||
/**
|
||
* MiPush消息发送类.
|
||
* @author wangkuiwei
|
||
* @name Sender
|
||
* @desc MiPush消息发送
|
||
*
|
||
*/
|
||
namespace xmpush;
|
||
|
||
class Sender extends HttpBase {
|
||
|
||
public function __construct(){
|
||
parent::__construct();
|
||
}
|
||
|
||
//指定regId单发消息
|
||
public function send(Message $message,$regId,$retries=1){
|
||
$fields = $message->getFields();
|
||
$fields['registration_id'] = $regId;
|
||
$url = Constants::$domain.Constants::reg_url;
|
||
return $this->postResult($url, $fields,$retries);
|
||
}
|
||
|
||
//指定regId列表群发
|
||
public function sendToIds(Message $message,$regIdList,$retries=1){
|
||
$fields = $message->getFields();
|
||
$jointRegIds = '';
|
||
foreach($regIdList as $regId){
|
||
if(isset($regId)){
|
||
$jointRegIds .= $regId.Constants::$comma;
|
||
}
|
||
}
|
||
$fields['registration_id'] = $jointRegIds;
|
||
$url = Constants::$domain.Constants::reg_url;
|
||
return $this->postResult($url, $fields,$retries);
|
||
}
|
||
|
||
//多条发送
|
||
public function multiSend($targetMessages,$type,$retries=1){
|
||
if($type == TargetedMessage::TARGET_TYPE_ALIAS){
|
||
$url = Constants::$domain.Constants::multi_messages_aliases_url;
|
||
}else if($type == TargetedMessage::TARGET_TYPE_USER_ACCOUNT){
|
||
$url = Constants::$domain.Constants::multi_messages_user_accounts_url;
|
||
}else{
|
||
$url = Constants::$domain.Constants::multi_messages_regids_url;
|
||
}
|
||
$data = array();
|
||
foreach($targetMessages as $targetMsg){
|
||
array_push($data,$targetMsg->getFields());
|
||
}
|
||
$fields = array('messages' => json_encode($data));
|
||
return $this->postResult($url, $fields,$retries);
|
||
}
|
||
|
||
//多条发送
|
||
public function multiSendAtTime($targetMessages,$type,$timeToSend,$retries=1){
|
||
if($type == TargetedMessage::TARGET_TYPE_ALIAS){
|
||
$url = Constants::$domain.Constants::multi_messages_aliases_url;
|
||
}else if($type == TargetedMessage::TARGET_TYPE_USER_ACCOUNT){
|
||
$url = Constants::$domain.Constants::multi_messages_user_accounts_url;
|
||
}else{
|
||
$url = Constants::$domain.Constants::multi_messages_regids_url;
|
||
}
|
||
$data = array();
|
||
foreach($targetMessages as $targetMsg){
|
||
array_push($data,$targetMsg->getFields());
|
||
}
|
||
$fields = array('messages' => json_encode($data),'time_to_send' => $timeToSend);
|
||
return $this->postResult($url, $fields,$retries);
|
||
}
|
||
|
||
//指定别名单发
|
||
public function sendToAlias(Message $message,$alias,$retries=1){
|
||
$fields = $message->getFields();
|
||
$fields['alias'] = $alias;
|
||
$url = Constants::$domain.Constants::alias_url;
|
||
return $this->postResult($url, $fields, $retries);
|
||
}
|
||
|
||
//指定别名列表群发
|
||
public function sendToAliases(Message $message,$aliasList,$retries=1){
|
||
$fields = $message->getFields();
|
||
$jointAliases = '';
|
||
foreach($aliasList as $alias){
|
||
if(strlen($jointAliases)>0){
|
||
$jointAliases = $jointAliases.Constants::$comma;
|
||
}
|
||
$jointAliases = $jointAliases.$alias;
|
||
}
|
||
$fields['alias'] = $jointAliases;
|
||
$url = Constants::$domain.Constants::alias_url;
|
||
return $this->postResult($url, $fields, $retries);
|
||
}
|
||
|
||
//指定userAccount群发
|
||
public function sendToUserAccount(Message $message,$userAccount,$retries=1){
|
||
$fields = $message->getFields();
|
||
$fields['user_account'] = $userAccount;
|
||
$url = Constants::$domain.Constants::user_account_url;
|
||
return $this->postResult($url, $fields, $retries);
|
||
}
|
||
|
||
//指定userAccount列表群发
|
||
public function sendToUserAccounts(Message $message,$userAccountList,$retries=1){
|
||
$fields = $message->getFields();
|
||
$jointUserAccounts = '';
|
||
foreach($userAccountList as $userAccount){
|
||
if(strlen($jointUserAccounts)>0){
|
||
$jointUserAccounts = $jointUserAccounts.Constants::$comma;
|
||
}
|
||
$jointUserAccounts = $jointUserAccounts.$userAccount;
|
||
}
|
||
$fields['user_account'] = $jointUserAccounts;
|
||
$url = Constants::$domain.Constants::user_account_url;
|
||
return $this->postResult($url, $fields, $retries);
|
||
}
|
||
|
||
//指定topic群发
|
||
public function broadcast(Message $message,$topic,$retries=1){
|
||
$fields = $message->getFields();
|
||
$fields['topic'] = $topic;
|
||
$url = Constants::$domain.Constants::topic_url;
|
||
return $this->postResult($url, $fields, $retries);
|
||
}
|
||
|
||
//向所有设备发送消息
|
||
public function broadcastAll(Message $message,$retries=1){
|
||
$fields = $message->getFields();
|
||
$url = Constants::$domain.Constants::all_url;
|
||
return $this->postResult($url, $fields, $retries);
|
||
}
|
||
|
||
//广播消息,多个topic,支持topic间的交集、并集或差集
|
||
public function multiTopicBroadcast(Message $message,$topicList,$topicOp,$retries=1){
|
||
if(count($topicList)==1){
|
||
return $this->broadcast($message,$topicList[0],$retries);
|
||
}
|
||
$fields = $message->getFields();
|
||
$jointTopics = '';
|
||
foreach($topicList as $topic){
|
||
if(strlen($jointTopics)>0){
|
||
$jointTopics = $jointTopics.Constants::$multi_topic_split;
|
||
}
|
||
$jointTopics = $jointTopics.$topic;
|
||
}
|
||
$fields['topics'] = $jointTopics;
|
||
$fields['topic_op'] = $topicOp;
|
||
$url = Constants::$domain.Constants::multi_topic_url;
|
||
return $this->postResult($url, $fields, $retries);
|
||
}
|
||
|
||
// 检测定时任务是否存在
|
||
public function checkScheduleJobExist($msgId,$retries=1){
|
||
$fields = array('job_id' => $msgId);
|
||
$url = Constants::$domain.Constants::check_schedule_job_exist;
|
||
return $this->postResult($url, $fields, $retries);
|
||
}
|
||
|
||
// 删除定时任务
|
||
public function deleteScheduleJob($msgId){
|
||
$fields = array('job_id' => $msgId);
|
||
$url = Constants::$domain.Constants::delete_schedule_job;
|
||
return $this->postResult($url, $fields, $retries);
|
||
}
|
||
}
|
||
|
||
?>
|