node-cq-websocket

A Node SDK for developing QQ chatbots based on WebSocket, which is depending on CoolQ and CQHTTP API plugin.

View project on GitHub

事件列表

事件樹

├─ message
│    ├─ private
│    ├─ discuss
│    │    └─ @
│    │      └─ me
│    └─ group
│         └─ @
│           └─ me
├─ notice
│    ├─ group_upload
│    ├─ group_admin
│    │    ├─ set
│    │    └─ unset
│    ├─ group_decrease
│    │    ├─ leave
│    │    ├─ kick
│    │    └─ kick_me
│    ├─ group_increase
│    │    ├─ approve
│    │    └─ invite
│    └─ friend_add
├─ request 
│    ├─ friend
│    └─ group
|         ├─ add
|         └─ invite
├─ meta_event
|    ├─ lifecycle
|    └─ heartbeat
├─ error  
├─ ready  
├─ socket ※
│    ├─ connecting  
│    ├─ connect  
│    ├─ failed  
│    ├─ reconnecting  
│    ├─ reconnect  
│    ├─ reconnect_failed  
│    ├─ max_reconnect  
│    ├─ closing    
│    ├─ close    
│    └─ error
└─ api ※
     ├─ response  
     └─ send ※
         ├─ pre    
         └─ post  

※: 表示無法在該節點進行監聽

基本事件

前三個基本事件之說明,可以另外參考 CQHTTP API 的數據上報格式

參數 context 可見事件列表

事件類型 監聽器參數 ...args 說明
message event CQEvent
context object
tags CQTag[]
所有流入的訊息。
notice context object 群文件上傳, 群管變動, 群成員增減, 好友添加…等QQ事件。
request context object 好友請求, 群請求/群邀請…等QQ事件。
meta_event context object 來自 CQHTTP API 的元事件。
error err Error 應用層面的錯誤, 如 CQHttp API 消息格式錯誤, 響應超時… 等
ready this 設定中啟用之連線均成功並初始化完成,可以開始調用API (送消息…等操作)。

message

| 事件類型 | 監聽器參數 | 說明 | | - | - | - | | message.private | event CQEvent
context object
tags CQTag[] | 私聊消息。 | | message.discuss | event CQEvent
context object
tags CQTag[] | 討論組消息。 | | message.discuss.@ | event CQEvent
context object
tags CQTag[] | 有人於討論組消息中被at。 | | message.discuss.@.me | event CQEvent
context object
tags CQTag[] | 有人於討論組消息at機器人。 | | message.group | event CQEvent
context object
tags CQTag[] | 群消息。 | | message.group.@ | event CQEvent
context object
tags CQTag[] | 有人於群消息中被at。 | | message.group.@.me | event CQEvent
context object
tags CQTag[] | 有人於群消息at機器人。 |

notice

| 事件類型 | 監聽器參數 | 說明 | | - | - | - | | notice.group_upload | context object | 群文件上傳。 | | notice.group_admin.set | context object | 設置管理員。 | | notice.group_admin.unset | context object | 取消管理員。 | | notice.group_decrease.leave | context object | 自主退群。 | | notice.group_decrease.kick | context object | 被動踢出群。 | | notice.group_decrease.kick_me | context object | 機器人被踢出群。 | | notice.group_increase.approve | context object | 管理員同意入群。 | | notice.group_increase.invite | context object | 管理員邀請入群。 | | notice.friend_add | context object | 新添加好友。 |

request

| 事件類型 | 監聽器參數 | 說明 | | - | - | - | | request.friend | context object | 私聊消息。 | | request.group.add | context object | 加群請求。 | | request.group.invite | context object | 邀請入群。 |

meta_event

| 事件類型 | 監聽器參數 | 說明 | | - | - | - | | meta_event.lifecycle | context object | 生命周期。 | | meta_event.heartbeat | context object | 心跳。 |

socket

底層 socket 連線的事件, 可用於掌握連線狀況。

事件類型 監聽器參數 說明
socket.connecting type WebsocketType
attempts number
開始嘗試連線, 連線成功/失敗之前。
socket.connect type WebsocketType
socket WebSocketConnection
attempts number
連線成功後,尚未初始化之前。
socket.failed type WebsocketType
attempts number
連線失敗。
socket.reconnecting type WebsocketType
attempts number
開始嘗試重新連線, 若存在持續中的連線, 則先斷線。
socket.reconnect type WebsocketType
attempts number
重連成功。
socket.reconnect_failed type WebsocketType
attempts number
重連失敗。
socket.max_reconnect type WebsocketType
attempts number
已抵達重連次數上限。
socket.closing type WebsocketType 連線關閉之前。
socket.close type WebsocketType
code number
desc string
連線關閉。(連線關閉代碼 code 可參照 RFC 文件))
socket.error type WebsocketType
err Error
連線錯誤。若該事件無監聽器,則會安裝默認監聽器,固定拋出例外。

api

| 事件類型 | 監聽器參數 | 說明 | | - | - | - | | api.send.pre | apiRequest object | 傳送 API 請求之前。關於 apiRequest 可見 /api/接口說明。 | | api.send.post | | 傳送 API 請求之後。 | | api.response | result object | 對於 API 請求的響應。詳細格式見 /api/接口說明
此為集中處理所有 API 請求的響應, 若需對個別請求追蹤結果, 請參考方法調用中返回的 Promise 對象。
若需追蹤消息快速響應的結果, 請參考 響應結果追蹤。 |