You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

149 lines
4.7 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
namespace websocket;
use GatewayClient\Gateway;
class Group extends Base
{
/**
* 将client_id加入某个组
* @param string $client_id 客户端ID
* @param string $group_id 分组ID,只能是数字或者字符串
* @date 2022-05-17
*/
public function joinGroup($client_id, $group_id)
{
// 设置GatewayWorker服务的Register服务ip和端口请根据实际情况改成实际值(ip不能是0.0.0.0)
Gateway::$registerAddress = $this->config['ip'] . ':' . $this->config['port'];
// client_id与group_id绑定
$result = Gateway::joinGroup($client_id, $group_id);
// 记录日志
$uid = defined('UID') ? UID : '';
platformLog([
'client_id' => $client_id,
'group_id' => $group_id
], $result, 'gateway_worker_join_group_uid_' . $uid);
return $result;
}
/**
* 向某个分组的所有在线client_id发送数据
* @param string $group_id 分组ID
* @param array $message 消息
* @param string $data_transfer 数据转换 json--转成json格式 ''--不做任何转换
* @date 2022-05-17
*/
public function sendToGroup($group_id, $message = [], $data_transfer = 'json')
{
// 设置GatewayWorker服务的Register服务ip和端口请根据实际情况改成实际值(ip不能是0.0.0.0)
Gateway::$registerAddress = $this->config['ip'] . ':' . $this->config['port'];
if ($data_transfer == 'json') {
$message = json_encode($message);
}
// 发送消息
$result = Gateway::sendToGroup($group_id, $message);
// 记录日志
$uid = defined('UID') ? UID : '';
platformLog([
'group_id' => $group_id,
'message' => $message,
], $result, 'getaway_worker_send_to_group_uid_' . $uid);
return $result;
}
/**
* 获取某个分组所有在线client_id信息
* @param string $group_id 分组ID
* @date 2022-05-18
*/
public function getClientSessionsByGroup($group_id)
{
// 设置GatewayWorker服务的Register服务ip和端口请根据实际情况改成实际值(ip不能是0.0.0.0)
Gateway::$registerAddress = $this->config['ip'] . ':' . $this->config['port'];
// 发送消息
$result = Gateway::getClientSessionsByGroup($group_id);
// 记录日志
$uid = defined('UID') ? UID : '';
platformLog([
'group_id' => $group_id
], $result, 'getaway_worker_get_client_session_by_group_uid_' . $uid);
return $result;
}
/**
* 获取某分组当前在线成连接数
* @param string $group_id 分组ID
* @date 2022-07-14
*/
public function getClientIdCountByGroup($group_id)
{
// 设置GatewayWorker服务的Register服务ip和端口请根据实际情况改成实际值(ip不能是0.0.0.0)
Gateway::$registerAddress = $this->config['ip'] . ':' . $this->config['port'];
// 发送消息
$result = Gateway::getClientIdCountByGroup($group_id);
// 记录日志
$uid = defined('UID') ? UID : '';
platformLog([
'group_id' => $group_id
], $result, 'getaway_worker_get_client_id_count_by_group_uid_' . $uid);
return $result;
}
/**
* 获取某个分组下的在线uid数量
* @param string $group_id 分组ID
* @date 2022-07-14
*/
public function getUidCountByGroup($group_id)
{
// 设置GatewayWorker服务的Register服务ip和端口请根据实际情况改成实际值(ip不能是0.0.0.0)
Gateway::$registerAddress = $this->config['ip'] . ':' . $this->config['port'];
// 发送消息
$result = Gateway::getUidCountByGroup($group_id);
// 记录日志
$uid = defined('UID') ? UID : '';
platformLog([
'group_id' => $group_id
], $result, 'getaway_worker_get_uid_count_by_group_uid_' . $uid);
return $result;
}
/**
* 获取某个分组所有在线uid列表
* @param string $group_id 分组ID
* @date 2022-07-14
*/
public function getUidListByGroup($group_id)
{
// 设置GatewayWorker服务的Register服务ip和端口请根据实际情况改成实际值(ip不能是0.0.0.0)
Gateway::$registerAddress = $this->config['ip'] . ':' . $this->config['port'];
// 发送消息
$result = Gateway::getUidListByGroup($group_id);
// 记录日志
$uid = defined('UID') ? UID : '';
platformLog([
'group_id' => $group_id
], $result, 'getaway_worker_get_uid_list_by_group_uid_' . $uid);
return $result;
}
}