Properties

$registerAddress

$registerAddress : string|array

注册中心地址

Type

string|array

$secretKey

$secretKey : string

秘钥

Type

string

$connectTimeout

$connectTimeout : integer

链接超时时间

Type

integer

$persistentConnection

$persistentConnection : boolean

与Gateway是否是长链接

Type

boolean

$businessWorker

$businessWorker : object

gateway 实例

Type

object

Methods

sendToAll()

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

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

Parameters

string $message

向客户端发送的消息

array $client_id_array

客户端 id 数组

array $exclude_client_id

不给这些client_id发

boolean $raw

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

Throws

\Exception

sendToClient()

sendToClient(integer  $client_id, string  $message) : void

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

Parameters

integer $client_id
string $message

sendToCurrentClient()

sendToCurrentClient(string  $message) : boolean

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

Parameters

string $message

Returns

boolean

isUidOnline()

isUidOnline(string  $uid) : integer

判断某个uid是否在线

Parameters

string $uid

Returns

integer —

0|1

isOnline()

isOnline(integer  $client_id) : integer

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

Parameters

integer $client_id

Returns

integer —

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() : integer

获取所有在线client_id数

Returns

integer

getAllClientCount()

getAllClientCount() : integer

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

Returns

integer

getClientIdCountByGroup()

getClientIdCountByGroup(string  $group = '') : integer

获取某个组的在线client_id数

Parameters

string $group

Returns

integer

getClientCountByGroup()

getClientCountByGroup(string  $group = '') : integer

getClientIdCountByGroup 函数的别名

Parameters

string $group

Returns

integer

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) : integer

获取某个群组在线uid数

Parameters

string $group

Returns

integer

getAllUidList()

getAllUidList() : array

获取全局在线uid列表

Returns

array

getAllUidCount()

getAllUidCount() : integer

获取全局在线uid数

Returns

integer

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(integer  $client_id, string  $message = null) : void

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

Parameters

integer $client_id
string $message

closeCurrentClient()

closeCurrentClient(string  $message = null) : boolean

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

Parameters

string $message

Throws

\Exception

Returns

boolean

destoryClient()

destoryClient(integer  $client_id) : boolean

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

Parameters

integer $client_id

Returns

boolean

destoryCurrentClient()

destoryCurrentClient() : boolean

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

Throws

\Exception

Returns

boolean

bindUid()

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

将 client_id 与 uid 绑定

Parameters

integer $client_id
integer|string $uid

unbindUid()

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

将 client_id 与 uid 解除绑定

Parameters

integer $client_id
integer|string $uid

joinGroup()

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

将 client_id 加入组

Parameters

integer $client_id
integer|string $group

leaveGroup()

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

将 client_id 离开组

Parameters

integer $client_id
integer|string $group

ungroup()

ungroup(integer|string  $group) : void

取消分组

Parameters

integer|string $group

sendToUid()

sendToUid(integer|string|array  $uid, string  $message) : void

向所有 uid 发送

Parameters

integer|string|array $uid
string $message

sendToGroup()

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

向 group 发送

Parameters

integer|string|array $group

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

string $message

消息

array $exclude_client_id

不给这些client_id发

boolean $raw

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

setSocketSession()

setSocketSession(integer  $client_id, string  $session_str) : boolean

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

Parameters

integer $client_id
string $session_str

Returns

boolean

setSession()

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

设置 session,原session值会被覆盖

Parameters

integer $client_id
array $session

updateSession()

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

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

Parameters

integer $client_id
array $session

getSession()

getSession(integer  $client_id) : mixed

获取某个client_id的session

Parameters

integer $client_id

Returns

mixed —

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

setBusinessWorker()

setBusinessWorker(\GatewayWorker\BusinessWorker  $business_worker_instance) 

设置 gateway 实例

Parameters

\GatewayWorker\BusinessWorker $business_worker_instance

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(integer  $client_id, integer  $cmd, string  $message, string  $ext_data = '') : boolean

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

Parameters

integer $client_id
integer $cmd
string $message
string $ext_data

Returns

boolean

sendAndRecv()

sendAndRecv(integer  $address, mixed  $data) : boolean

发送数据并返回

Parameters

integer $address
mixed $data

Throws

\Exception

Returns

boolean

sendToGateway()

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

发送数据到网关

Parameters

string $address
array $gateway_data

Returns

boolean

sendBufferToGateway()

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

发送buffer数据到网关

Parameters

string $address
string $gateway_buffer

Returns

boolean

sendToAllGateway()

sendToAllGateway(string  $gateway_data) : void

向所有 gateway 发送数据

Parameters

string $gateway_data

Throws

\Exception

kickAddress()

kickAddress(string  $address, integer  $connection_id,   $message) : boolean

踢掉某个网关的 socket

Parameters

string $address
integer $connection_id
$message

Returns

boolean

destroyAddress()

destroyAddress(string  $address, integer  $connection_id) : boolean

销毁某个网关的 socket

Parameters

string $address
integer $connection_id

Returns

boolean

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) : boolean

检查群组id是否合法

Parameters

$group

Returns

boolean