[toc]
消息處理器是處理消息的關鍵,也是 Vbot 的核心。
每次 Vbot 收到消息(聊天消息、系統消息等),都會回調消息處理器的方法,在消息處理器的方法內,你可以選擇自行處理一些觸發或回復的事項(如:插入數據庫,觸發郵件通知或回復消息等等)。
處理器中接受到的是一個 Illuminate\Support\Collection 類型的消息,你可以通過?`$message['type']`?等判斷再進行不同的處理,更多消息詳情可查閱?[消息](http://create.hanc.cc/vbot/docs/message.html)
> **注意**
>
> 在消息處理器中,請切勿執行一些非常耗時的工作或者長期 sleep,以免 cookie 過期導致掉線。
### 基本使用:
```
use Hanson\Vbot\Foundation\Vbot;
use Illuminate\Support\Collection;
// ...
$vbot = new Vbot($config);
// 獲取消息處理器實例
$messageHandler = $vbot->messageHandler;
// 收到消息時觸發
$messageHandler->setHandler(function(Collection $message){
Text::send($message['from']['UserName'], 'Hi! I'm Vbot');
});
// 一直觸發
$messageHandler->setCustomHandler(function(){
if (date('H') == 12) {
Text::send('filehelper', '12 點');
}
});
```
### setHandler Vs setCustomHandler
setHandler 為收到消息時觸發
setCustomHandler 為當 Vbot 向微信服務器請求查詢是否有最新消息時,無論是否有新消息都會觸發,觸發周期最長為 35 秒一次。