# Gateway::sendToAll
## 說明:
~~~
void Gateway::sendToAll(string $send_data [, array $client_id_array = null [, array $exclude_client_id = null [, bool $raw = false]]]);
~~~
向所有客戶端或者client_id_array指定的客戶端發送$send_data數據。如果指定的$client_id_array中的client_id不存在則自動丟棄
## 參數
* $send_data
要發送的數據(字符串類型),此數據會被Gateway所使用協議的encode方法打包后發送給客戶端
* $client_id_array
指定向哪些client_id發送,如果不傳遞該參數,則是向所有在線客戶端發送 $send_data 數據
* $exclude_client_id
client_id組成的數組。$exclude_client_id數組中指定的client_id將被排除在外,不會收到本次發的消息
* $raw
是否發送原始數據,也就是繞過gateway協議打包過程,gateway對數據不再做任何處理,直接發給客戶端。
如果$raw為true,要求$message為用協議打包好的數據(調用了gateway指定協議的encode方法生成的數據),否則客戶端可能無法解析。
此參數一般用于某些特殊情況,例如合并多個數據包為一段buffer,一次性發給客戶端,而不是逐條發給客戶端,這將有助于降低系統負載。
絕大多數情況此參數用不到,開發者可以忽略。
## 返回值
因為數據發送是異步進行的,所以沒有返回值。一般來說只要客戶端在線就可以發送成功。
## 更新日志
| 版本 | 說明 |
| --- | --- |
| 1.0.1 | 增加了$exclude_client_id和$raw參數 |
## 范例
~~~
use \GatewayWorker\Lib\Gateway;
class Events
{
...
public static function onMessage($client_id, $message)
{
// $message = '{"type":"say_to_all","content":"hello"}'
$req_data = json_decode($message, true);
// 如果是向所有客戶端發送消息
if($req_data['type'] == 'say_to_all')
{
Gateway::sendToAll($req_data['content']);
}
}
...
}
~~~
- 快速入門
- 魔際客服系統V1.0簡介
- 新手上路
- 注冊并創建應用
- 通信過程及聊天記錄保存
- 實時消息回調
- Lib/Geteway類提供的接口
- sendToAll
- sendToClient
- closeClient
- isOnline
- bindUid
- unbindUid
- isUidOnline
- getClientIdByUid
- getUidByClientId
- sendToUid
- joinGroup
- leaveGroup
- sendToGroup
- getClientCountByGroup
- getClientSessionsByGroup
- getAllClientCount
- getAllClientSessions
- setSession
- updateSession
- getSession
- 服務端集成
- 入門
- 用戶體系集成
- 聊天記錄
- 文件上傳下載
- 發送消息
- 群組管理
- 聊天室管理
- 應用管理
- Web IM集成
- Web IM 介紹
- 集成方式
- Web SDK基礎功能
- 消息
- 好友管理
- 群組管理
- 聊天室管理
- 微信小程序 Demo
- Web SDK API Doc
- Web IM SDK 更新日志
- React Native集成
- React Native Demo 介紹