# web.feishu.socketClient 库模块帮助文档

## feishuSocketClientObject 成员列表 <a id="feishuSocketClientObject" href="#feishuSocketClientObject">&#x23;</a>

### feishuSocketClientObject.appId <a id="feishuSocketClientObject.appId" href="#feishuSocketClientObject.appId">&#x23;</a>
飞书应用 App ID

### feishuSocketClientObject.appSecret <a id="feishuSocketClientObject.appSecret" href="#feishuSocketClientObject.appSecret">&#x23;</a>
飞书应用 App Secret

### feishuSocketClientObject.autoReconnect <a id="feishuSocketClientObject.autoReconnect" href="#feishuSocketClientObject.autoReconnect">&#x23;</a>
是否自动重连，默认 true

### feishuSocketClientObject.close() <a id="feishuSocketClientObject.close" href="#feishuSocketClientObject.close">&#x23;</a>
关闭连接并停止自动重连

### feishuSocketClientObject.connId <a id="feishuSocketClientObject.connId" href="#feishuSocketClientObject.connId">&#x23;</a>
连接成功后的 device_id

### feishuSocketClientObject.connect(url) <a id="feishuSocketClientObject.connect" href="#feishuSocketClientObject.connect">&#x23;</a>
连接到指定 WebSocket URL

### feishuSocketClientObject.domain <a id="feishuSocketClientObject.domain" href="#feishuSocketClientObject.domain">&#x23;</a>
飞书 API 域名，默认 "https://open.feishu.cn"

### feishuSocketClientObject.download(url,savePath,progressCb) <a id="feishuSocketClientObject.download" href="#feishuSocketClientObject.download">&#x23;</a>
下载文件

### feishuSocketClientObject.downloadFile(fileKey,savePath,progressCb) <a id="feishuSocketClientObject.downloadFile" href="#feishuSocketClientObject.downloadFile">&#x23;</a>
下载文件

### feishuSocketClientObject.downloadImage(imageKey,savePath,progressCb) <a id="feishuSocketClientObject.downloadImage" href="#feishuSocketClientObject.downloadImage">&#x23;</a>
下载图片

### feishuSocketClientObject.downloadMessageResource(messageId,fileKey,typ,savePath,progressCb) <a id="feishuSocketClientObject.downloadMessageResource" href="#feishuSocketClientObject.downloadMessageResource">&#x23;</a>
下载消息资源

### feishuSocketClientObject.getTenantToken() <a id="feishuSocketClientObject.getTenantToken" href="#feishuSocketClientObject.getTenantToken">&#x23;</a>
获取 tenant_access_token

### feishuSocketClientObject.on(eventType,handler) <a id="feishuSocketClientObject.on" href="#feishuSocketClientObject.on">&#x23;</a>
注册事件监听器。  
handler 签名：function（eventObj, frame, headers）

### feishuSocketClientObject.pingInterval <a id="feishuSocketClientObject.pingInterval" href="#feishuSocketClientObject.pingInterval">&#x23;</a>
心跳间隔（秒），默认 120

### feishuSocketClientObject.reconnectCount <a id="feishuSocketClientObject.reconnectCount" href="#feishuSocketClientObject.reconnectCount">&#x23;</a>
最大重连次数，-1 表示无限重连

### feishuSocketClientObject.reconnectInterval <a id="feishuSocketClientObject.reconnectInterval" href="#feishuSocketClientObject.reconnectInterval">&#x23;</a>
重连间隔（秒），默认 120

### feishuSocketClientObject.reconnectNonce <a id="feishuSocketClientObject.reconnectNonce" href="#feishuSocketClientObject.reconnectNonce">&#x23;</a>
重连随机延迟（秒），默认 30

### feishuSocketClientObject.reply(messageId,msgType,contentTable) <a id="feishuSocketClientObject.reply" href="#feishuSocketClientObject.reply">&#x23;</a>
回复消息

### feishuSocketClientObject.replyFile(messageId,fileKey) <a id="feishuSocketClientObject.replyFile" href="#feishuSocketClientObject.replyFile">&#x23;</a>
回复文件消息

### feishuSocketClientObject.replyFilePath(messageId,path,fileType,fileName,duration,progressCb) <a id="feishuSocketClientObject.replyFilePath" href="#feishuSocketClientObject.replyFilePath">&#x23;</a>
上传并回复文件

### feishuSocketClientObject.replyImage(messageId,imageKey) <a id="feishuSocketClientObject.replyImage" href="#feishuSocketClientObject.replyImage">&#x23;</a>
回复图片消息

### feishuSocketClientObject.replyImagePath(messageId,path,imageType,progressCb) <a id="feishuSocketClientObject.replyImagePath" href="#feishuSocketClientObject.replyImagePath">&#x23;</a>
上传并回复图片

### feishuSocketClientObject.replyText(messageId,text) <a id="feishuSocketClientObject.replyText" href="#feishuSocketClientObject.replyText">&#x23;</a>
快捷回复文本

### feishuSocketClientObject.request(url,method,data) <a id="feishuSocketClientObject.request" href="#feishuSocketClientObject.request">&#x23;</a>
发送 REST 请求

### feishuSocketClientObject.rest <a id="feishuSocketClientObject.rest" href="#feishuSocketClientObject.rest">&#x23;</a>
REST API 客户端实例  

[返回对象:feishuRestClientObject](#feishuRestClientObject)

### feishuSocketClientObject.send(receiveId,receiveIdType,msgType,contentTable) <a id="feishuSocketClientObject.send" href="#feishuSocketClientObject.send">&#x23;</a>
发送消息

### feishuSocketClientObject.sendFile(receiveId,receiveIdType,fileKey) <a id="feishuSocketClientObject.sendFile" href="#feishuSocketClientObject.sendFile">&#x23;</a>
发送文件消息

### feishuSocketClientObject.sendFilePath(receiveId,receiveIdType,path,fileType,fileName,duration,progressCb) <a id="feishuSocketClientObject.sendFilePath" href="#feishuSocketClientObject.sendFilePath">&#x23;</a>
上传并发送文件

### feishuSocketClientObject.sendImage(receiveId,receiveIdType,imageKey) <a id="feishuSocketClientObject.sendImage" href="#feishuSocketClientObject.sendImage">&#x23;</a>
发送图片消息

### feishuSocketClientObject.sendImagePath(receiveId,receiveIdType,path,imageType,progressCb) <a id="feishuSocketClientObject.sendImagePath" href="#feishuSocketClientObject.sendImagePath">&#x23;</a>
上传并发送图片

### feishuSocketClientObject.sendText(receiveId,receiveIdType,text) <a id="feishuSocketClientObject.sendText" href="#feishuSocketClientObject.sendText">&#x23;</a>
快捷发送文本

### feishuSocketClientObject.serviceId <a id="feishuSocketClientObject.serviceId" href="#feishuSocketClientObject.serviceId">&#x23;</a>
连接成功后的 service_id

### feishuSocketClientObject.source <a id="feishuSocketClientObject.source" href="#feishuSocketClientObject.source">&#x23;</a>
来源标识，用于 User-Agent

### feishuSocketClientObject.start() <a id="feishuSocketClientObject.start" href="#feishuSocketClientObject.start">&#x23;</a>
启动长连接。  
自动获取 endpoint 并连接。  
返回 true 或 false, 错误信息

### feishuSocketClientObject.updateMessage(messageId,msgType,contentTable) <a id="feishuSocketClientObject.updateMessage" href="#feishuSocketClientObject.updateMessage">&#x23;</a>
编辑消息

### feishuSocketClientObject.updateText(messageId,text) <a id="feishuSocketClientObject.updateText" href="#feishuSocketClientObject.updateText">&#x23;</a>
快捷编辑文本

### feishuSocketClientObject.uploadFilePath(path,fileType,fileName,duration,progressCb) <a id="feishuSocketClientObject.uploadFilePath" href="#feishuSocketClientObject.uploadFilePath">&#x23;</a>
上传文件，返回 fileKey

### feishuSocketClientObject.uploadImagePath(path,imageType,progressCb) <a id="feishuSocketClientObject.uploadImagePath" href="#feishuSocketClientObject.uploadImagePath">&#x23;</a>
上传图片，返回 imageKey

### feishuSocketClientObject.ws <a id="feishuSocketClientObject.ws" href="#feishuSocketClientObject.ws">&#x23;</a>
WebSocket 客户端实例

## feishuSocketClientObject 事件列表 <a id="feishuSocketClientObjectEvent" href="#feishuSocketClientObjectEvent">&#x23;</a>

### feishuSocketClientObject.onCard <a id="feishuSocketClientObject.onCard" href="#feishuSocketClientObject.onCard">&#x23;</a>
卡片交互回调。  
@.onCard = function（cardObj, frame, headers）{}

### feishuSocketClientObject.onDisconnected <a id="feishuSocketClientObject.onDisconnected" href="#feishuSocketClientObject.onDisconnected">&#x23;</a>
断开连接回调。  
@.onDisconnected = function（e）{}

### feishuSocketClientObject.onError <a id="feishuSocketClientObject.onError" href="#feishuSocketClientObject.onError">&#x23;</a>
错误回调。  
@.onError = function（err）{}

### feishuSocketClientObject.onEvent <a id="feishuSocketClientObject.onEvent" href="#feishuSocketClientObject.onEvent">&#x23;</a>
通用事件回调。  
@.onEvent = function（eventType, eventObj, frame, headers）{}

### feishuSocketClientObject.onRawFrame <a id="feishuSocketClientObject.onRawFrame" href="#feishuSocketClientObject.onRawFrame">&#x23;</a>
原始帧回调。  
@.onRawFrame = function（frame）{}

### feishuSocketClientObject.onReady <a id="feishuSocketClientObject.onReady" href="#feishuSocketClientObject.onReady">&#x23;</a>
连接就绪回调。  
@.onReady = function（）{}

### feishuSocketClientObject.onReconnecting <a id="feishuSocketClientObject.onReconnecting" href="#feishuSocketClientObject.onReconnecting">&#x23;</a>
重连中回调。  
@.onReconnecting = function（attempts, delay）{}

## web.feishu 成员列表 <a id="web.feishu" href="#web.feishu">&#x23;</a>

### web.feishu.socketClient <a id="web.feishu.socketClient" href="#web.feishu.socketClient">&#x23;</a>
飞书开放平台长连接 WebSocket 客户端。  
支持事件订阅、自动重连、心跳维持。  

[返回对象:feishuSocketClientObject](#feishuSocketClientObject)

### web.feishu.socketClient(配置表) <a id="web.feishu.socketClient" href="#web.feishu.socketClient">&#x23;</a>
创建飞书长连接客户端。  
配置表必须包含 appId、appSecret 字段，  
可选字段：domain、source、autoReconnect、reconnectCount、  
reconnectInterval、reconnectNonce、pingInterval。  

[返回对象:feishuSocketClientObject](#feishuSocketClientObject)
