初始化项目:添加后端代码、ThinkPHP框架、前端资源

This commit is contained in:
amb
2026-09-03 12:42:39 +08:00
commit 482bece22e
3726 changed files with 416708 additions and 0 deletions
+127
View File
@@ -0,0 +1,127 @@
<?php
namespace aodianyun;
class Dms
{
private $host = "http://api.dms.aodianyun.com";
private $s_key;
public function __construct($s_key)
{
$this->s_key = $s_key;
}
/**
* 发送消息
* @param $topic 分组
* @param $content 内容
* @return array|mixed
*/
public function sendMsg($topic,$content){
$param = [
'body'=>$content
];
return $this->curl("/v1/messages/".$topic,"POST",json_encode($param));
}
/**
* 发送消息
* @param $topic 分组
* @param $content 内容
* @return array|mixed
*/
public function delMsg($topic,$uuid){
return $this->curl("/v1/historys/".$topic."/uuid/".$uuid,"DELETE");
}
/**
* 推送消息到某个用户
* @param $topic 分组
* @param $content 内容
* @return array|mixed
*/
public function sendMsgToUser($clientId,$content){
$param = [
'body'=>$content
];
return $this->curl("/v1/messages/p2p/".$clientId,"POST",json_encode($param));
}
/**
* 获取在线用户
* 默认skip num 为0 只返回用户数量
* @param $topic
* @param $skip 跳过多少条记录
* @param $num 查询多少条记录
* @return array|mixed
*/
public function getOnlineUser($topic,$skip=0,$num=0){
return $this->curl("/v1/topics/".$topic."/users?skip=".$skip."&num=".$num);
}
private function curl($path,$method="GET",$content="",$expire=3600,$timeout=60){
$ch = curl_init();
$expire = time() + $expire;
if(($method == "POST" || $method == "PUT") && !empty($content)){
$contentMd5 = md5($content);
$str = $method."\n".$path."\n".$expire."\n".$contentMd5."\n";
}else{
$str = $method."\n".$path."\n".$expire."\n";
}
$query_url = $this->host.$path;
curl_setopt($ch,CURLOPT_URL,$query_url);
curl_setopt($ch,CURLOPT_HEADER,false);
curl_setopt($ch,CURLOPT_AUTOREFERER,true);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);
curl_setopt($ch,CURLOPT_FRESH_CONNECT,true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
curl_setopt($ch,CURLOPT_TIMEOUT,$timeout);
// curl_setopt($ch,CURLOPT_USERAGENT,$useragent);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_BINARYTRANSFER,true);
curl_setopt($ch,CURLOPT_CUSTOMREQUEST,$method);
// curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
if($method == 'POST') {
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,$content);
} else if($method == 'PUT') {
curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS,$content);
}
$authorization = 'Authorization: dms '.$this->s_key;
//print_r($authorization);exit();
$header = array($authorization,'AD-Expire: '.$expire,'Content-Type: application/json');
curl_setopt($ch,CURLOPT_HTTPHEADER, $header);
//execute post
$response = curl_exec($ch);
//get response code
$response_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
//close connection
curl_close($ch);
//return result
if($response_code == 200 || $response_code == 201 || $response_code == 204) {
$rst = json_decode(trim($response),true);
} else {
$rr = json_decode(trim($response),true);
if($rr) {
$rst = $rr;
} else {
$rst = array(
'Flag'=>$response_code,
'FlagString'=>trim($response)
);
}
}
return $rst;
}
}