Gateway::sendToGroup
說明:
void Gateway::sendToGroup(mixed $group, string $message [, array $exclude_client_id = null [, bool $raw = false]]);
向某個分組的所有在線client_id發(fā)送數(shù)據(jù)。
參數(shù)
$group
group可以是字符串、數(shù)字、或者數(shù)組。如果為數(shù)組,則是給數(shù)組內(nèi)所有g(shù)roup發(fā)送數(shù)據(jù)
$message
要發(fā)送的數(shù)據(jù)(字符串類型),此數(shù)據(jù)會被Gateway所使用協(xié)議的encode方法打包后再發(fā)送給客戶端
$exclude_client_id
client_id組成的數(shù)組。$exclude_client_id
數(shù)組中指定的client_id將被排除在外,不會收到本次發(fā)的消息
$raw
是否發(fā)送原始數(shù)據(jù),也就是繞過gateway協(xié)議打包過程,gateway對數(shù)據(jù)不再做任何處理,直接發(fā)給客戶端。
如果$raw
為true
,要求$message
為用協(xié)議打包好的數(shù)據(jù)(調(diào)用了gateway指定協(xié)議的encode方法生成的數(shù)據(jù)),否則客戶端可能無法解析。
此參數(shù)一般用于某些特殊情況,例如合并多個數(shù)據(jù)包為一段buffer,一次性發(fā)給客戶端,而不是逐條發(fā)給客戶端,這將有助于降低系統(tǒng)負載。
絕大多數(shù)情況此參數(shù)用不到,開發(fā)者可以忽略。
更新日志
版本 | 說明 |
---|---|
2.0.7 | 增加了$exclude_client_id 和$raw 參數(shù) |
返回值
因為數(shù)據(jù)發(fā)送是異步進行的,所以沒有返回值。一般來說只要客戶端在線就可以發(fā)送成功。
范例
use \GatewayWorker\Lib\Gateway;
class Events
{
...
public static function onMessage($client_id, $message)
{
// $message = '{"type":"send_to_group","group":"xxxxx", "message":"...."}'
$req_data = json_decode($message, true);
Gateway::sendToGroup($req_data['group'], $req_data['message']);
}
...
}