Properties

$registerAddress

$registerAddress : string|array

注册中心地址

Type

string|array

$secretKey

$secretKey : string

秘钥

Type

string

$connectTimeout

$connectTimeout : int

链接超时时间

Type

int

$persistentConnection

$persistentConnection : bool

与Gateway是否是长链接

Type

bool

$businessWorker

$businessWorker : object

gateway 实例

Type

object

Methods

sendToAll()

sendToAll(string  $message, array  $client_id_array = null, array  $exclude_client_id = null, bool  $raw = false) : void

向所有客户端连接(或者 client_id_array 指定的客户端连接)广播消息

Parameters

string $message

向客户端发送的消息

array $client_id_array

客户端 id 数组

array $exclude_client_id

不给这些client_id发

bool $raw

是否发送原始数据(即不调用gateway的协议的encode方法)

Throws

\Exception

sendToClient()

sendToClient(string  $client_id, string  $message, bool  $raw = false) : void

向某个client_id对应的连接发消息

Parameters

string $client_id
string $message
bool $raw

sendToCurrentClient()

sendToCurrentClient(string  $message, bool  $raw = false) : bool

向当前客户端连接发送消息

Parameters

string $message
bool $raw

Returns

bool —

isUidOnline()

isUidOnline(string  $uid) : int

判断某个uid是否在线

Parameters

string $uid

Returns

int —

0|1

isOnline()

isOnline(string  $client_id) : int

判断client_id对应的连接是否在线

Parameters

string $client_id

Returns

int —

0|1

getAllClientInfo()

getAllClientInfo(string  $group = '') : array

获取所有在线用户的session,client_id为 key(弃用,请用getAllClientSessions代替)

Parameters

string $group

Returns

array —

getAllClientSessions()

getAllClientSessions(string  $group = '') : array

获取所有在线client_id的session,client_id为 key

Parameters

string $group

Returns

array —

getClientInfoByGroup()

getClientInfoByGroup(string  $group) : array

获取某个组的连接信息(弃用,请用getClientSessionsByGroup代替)

Parameters

string $group

Returns

array —

getClientSessionsByGroup()

getClientSessionsByGroup(string  $group) : array

获取某个组的所有client_id的session信息

Parameters

string $group

Returns

array —

getAllClientIdCount()

getAllClientIdCount() : int

获取所有在线client_id数

Returns

int —

getAllClientCount()

getAllClientCount() : int

获取所有在线client_id数(getAllClientIdCount的别名)

Returns

int —

getClientIdCountByGroup()

getClientIdCountByGroup(string  $group = '') : int

获取某个组的在线client_id数

Parameters

string $group

Returns

int —

getClientCountByGroup()

getClientCountByGroup(string  $group = '') : int

getClientIdCountByGroup 函数的别名

Parameters

string $group

Returns

int —

getClientIdListByGroup()

getClientIdListByGroup(string  $group) : array

获取某个群组在线client_id列表

Parameters

string $group

Returns

array —

getAllClientIdList()

getAllClientIdList() : array

获取集群所有在线client_id列表

Returns

array —

getClientIdByUid()

getClientIdByUid(string  $uid) : array

获取与 uid 绑定的 client_id 列表

Parameters

string $uid

Returns

array —

getUidListByGroup()

getUidListByGroup(string  $group) : array

获取某个群组在线uid列表

Parameters

string $group

Returns

array —

getUidCountByGroup()

getUidCountByGroup(string  $group) : int

获取某个群组在线uid数

Parameters

string $group

Returns

int —

getAllUidList()

getAllUidList() : array

获取全局在线uid列表

Returns

array —

getAllUidCount()

getAllUidCount() : int

获取全局在线uid数

Returns

int —

getUidByClientId()

getUidByClientId( $client_id) : mixed

通过client_id获取uid

Parameters

$client_id

Returns

mixed —

getAllGroupIdList()

getAllGroupIdList() : array

获取所有在线的群组id

Returns

array —

getAllGroupUidCount()

getAllGroupUidCount() : array

获取所有在线分组的uid数量,也就是每个分组的在线用户数

Returns

array —

getAllGroupUidList()

getAllGroupUidList() : array

获取所有分组uid在线列表

Returns

array —

getAllGroupClientIdList()

getAllGroupClientIdList() : array

获取所有群组在线client_id列表

Returns

array —

getAllGroupClientIdCount()

getAllGroupClientIdCount() : array

获取所有群组在线client_id数量,也就是获取每个群组在线连接数

Returns

array —

closeClient()

closeClient(string  $client_id, string  $message = null) : void

踢掉某个客户端,并以$message通知被踢掉客户端

Parameters

string $client_id
string $message

closeCurrentClient()

closeCurrentClient(string  $message = null) : bool

踢掉当前客户端,并以$message通知被踢掉客户端

Parameters

string $message

Throws

\Exception

Returns

bool —

destoryClient()

destoryClient(string  $client_id) : bool

踢掉某个客户端并直接立即销毁相关连接

Parameters

string $client_id

Returns

bool —

destoryCurrentClient()

destoryCurrentClient() : bool

踢掉当前客户端并直接立即销毁相关连接

Throws

\Exception

Returns

bool —

bindUid()

bindUid(string  $client_id, int|string  $uid) : void

将 client_id 与 uid 绑定

Parameters

string $client_id
int|string $uid

unbindUid()

unbindUid(string  $client_id, int|string  $uid) : void

将 client_id 与 uid 解除绑定

Parameters

string $client_id
int|string $uid

joinGroup()

joinGroup(string  $client_id, int|string  $group) : void

将 client_id 加入组

Parameters

string $client_id
int|string $group

leaveGroup()

leaveGroup(string  $client_id, int|string  $group) : void

将 client_id 离开组

Parameters

string $client_id
int|string $group

ungroup()

ungroup(int|string  $group) : void

取消分组

Parameters

int|string $group

sendToUid()

sendToUid(int|string|array  $uid, string  $message, bool  $raw = false) : void

向所有 uid 发送

Parameters

int|string|array $uid
string $message
bool $raw

sendToGroup()

sendToGroup(int|string|array  $group, string  $message, array  $exclude_client_id = null, bool  $raw = false) : void

向 group 发送

Parameters

int|string|array $group

组(不允许是 0 '0' false null array()等为空的值)

string $message

消息

array $exclude_client_id

不给这些client_id发

bool $raw

发送原始数据(即不调用gateway的协议的encode方法)

setSocketSession()

setSocketSession(string  $client_id, string  $session_str) : bool

更新 session,框架自动调用,开发者不要调用

Parameters

string $client_id
string $session_str

Returns

bool —

setSession()

setSession(string  $client_id, array  $session) : void

设置 session,原session值会被覆盖

Parameters

string $client_id
array $session

updateSession()

updateSession(string  $client_id, array  $session) : void

更新 session,实际上是与老的session合并

Parameters

string $client_id
array $session

getSession()

getSession(string  $client_id) : mixed

获取某个client_id的session

Parameters

string $client_id

Returns

mixed —

false表示出错、null表示用户不存在、array表示具体的session信息

setBusinessWorker()

setBusinessWorker(\GatewayWorker\BusinessWorker  $business_worker_instance) : mixed

设置 gateway 实例

Parameters

\GatewayWorker\BusinessWorker $business_worker_instance

Returns

mixed —

formatClientIdFromGatewayBuffer()

formatClientIdFromGatewayBuffer( $data) : array

格式化client_id

Parameters

$data

Returns

array —

select()

select(array  $fields = array('session', 'uid', 'groups'), array  $where = array()) : array

根据条件到gateway搜索数据

Parameters

array $fields
array $where

Returns

array —

generateAuthBuffer()

generateAuthBuffer() : string

生成验证包,用于验证此客户端的合法性

Returns

string —

getBufferFromSomeGateway()

getBufferFromSomeGateway(array  $gateway_data_array) : array

批量向某些gateway发包,并得到返回数组

Parameters

array $gateway_data_array

Throws

\Exception

Returns

array —

getBufferFromAllGateway()

getBufferFromAllGateway(string  $gateway_data) : array

批量向所有 gateway 发包,并得到返回数组

Parameters

string $gateway_data

Throws

\Exception

Returns

array —

getAllGatewayAddress()

getAllGatewayAddress() : array

获取所有gateway内部通讯地址

Throws

\Exception

Returns

array —

getBufferFromGateway()

getBufferFromGateway( $gateway_buffer_array) : array

批量向gateway发送并获取数据

Parameters

$gateway_buffer_array

Returns

array —

sendCmdAndMessageToClient()

sendCmdAndMessageToClient(string  $client_id, int  $cmd, string  $message, string  $ext_data = '', bool  $raw = false) : bool

向某个用户网关发送命令和消息

Parameters

string $client_id
int $cmd
string $message
string $ext_data
bool $raw

Returns

bool —

sendAndRecv()

sendAndRecv(int  $address, mixed  $data) : bool

发送数据并返回

Parameters

int $address
mixed $data

Throws

\Exception

Returns

bool —

sendToGateway()

sendToGateway(string  $address, array  $gateway_data) : bool

发送数据到网关

Parameters

string $address
array $gateway_data

Returns

bool —

sendBufferToGateway()

sendBufferToGateway(string  $address, string  $gateway_buffer) : bool

发送buffer数据到网关

Parameters

string $address
string $gateway_buffer

Returns

bool —

sendToAllGateway()

sendToAllGateway(string  $gateway_data) : void

向所有 gateway 发送数据

Parameters

string $gateway_data

Throws

\Exception

kickAddress()

kickAddress(string  $address, int  $connection_id, mixed  $message) : bool

踢掉某个网关的 socket

Parameters

string $address
int $connection_id
mixed $message

Returns

bool —

destroyAddress()

destroyAddress(string  $address, int  $connection_id) : bool

销毁某个网关的 socket

Parameters

string $address
int $connection_id

Returns

bool —

clientIdArrayToAddressArray()

clientIdArrayToAddressArray(array  $client_id_array) : array

将clientid数组转换成address数组

Parameters

array $client_id_array

Returns

array —

getAllGatewayAddressesFromRegister()

getAllGatewayAddressesFromRegister() : array

获取通过注册中心获取所有 gateway 通讯地址

Throws

\Exception

Returns

array —

isValidGroupId()

isValidGroupId( $group) : bool

检查群组id是否合法

Parameters

$group

Returns

bool —