Files
mier-php/application/api/model/WebSocketPush1.php
2025-08-11 10:22:05 +08:00

121 lines
3.7 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace app\api\model;
class WebSocketPush
{
public $websocket_api_address;
public $websocket_api_key;
/*
200 通用数据
房间PK
220 推送PK当前结果数据
300
用户进入房间推送消息
301
房间麦位信息
302
房间赠送礼物推送数据
303
开宝箱房间播报数据
304
开宝箱全服播报数据
400
房间相亲数据
*/
public function __construct()
{
$config = model('admin/Config')->get_system_config();
$this->websocket_api_address = $config['websocket_api_address'];
$this->websocket_api_key = $config['websocket_api_key'];
}
//发送消息给个人
public function send_to_one($uid, $content)
{
$post_data = [];
$post_data['action'] = 'send_to_one';
$post_data['key'] = $this->websocket_api_key;
if (is_array($content)) {
$post_data['content'] = json_encode($content);
} else {
$post_data['content'] = $content;
}
$post_data['uid'] = $uid;
$content = $this->myCurl($this->websocket_api_address, $post_data);
return $content;
}
//发送消息到指定房间
public function send_to_group($rid, $content)
{
$post_data = [];
$post_data['action'] = 'send_to_group';
$post_data['key'] = $this->websocket_api_key;
if (is_array($content)) {
$post_data['content'] = json_encode($content);
} else {
$post_data['content'] = $content;
}
$post_data['hid'] = $rid;
$content = $this->myCurl($this->websocket_api_address, $post_data);
return $content;
}
//发送群体消息
public function send_to_all($content)
{
$post_data = [];
$post_data['action'] = 'send_to_all';
$post_data['key'] = $this->websocket_api_key;
if (is_array($content)) {
$post_data['content'] = json_encode($content);
} else {
$post_data['content'] = $content;
}
// dump($post_data);
$content = $this->myCurl($this->websocket_api_address, $post_data);
return $content;
}
public function getallclients()
{
$post_data = [];
$post_data['action'] = 'getallclients';
$post_data['key'] = $this->websocket_api_key;
$content = $this->myCurl($this->websocket_api_address, $post_data);
return $content;
}
//参数1访问的URL参数2post数据(不填则为GET)参数3提交的$cookies,参数4是否返回$cookies
public function myCurl($url, $post_data = array(), $header = array(), $cookie = "")
{
// $url = 'http://paysystem.local.com/index/apip/cc';
// dump($url);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //如果把这行注释掉的话,就会直接输出
$curl_header = array();
if (!empty($header)) {
foreach ($header as $k => $v) {
$curl_header[] = "$k:$v";
}
curl_setopt($ch, CURLOPT_HTTPHEADER, $curl_header);
}
if (!empty($post_data)) {
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_data));
}
if (!empty($cookie)) {
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
}
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
}