@fork-anyone/node-nim
Version:
NetEase IM nodejs wrapper based on NetEase IM C++ SDK
139 lines • 5.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NIMSubscribeEvent = void 0;
const eventemitter3_1 = require("eventemitter3");
class NIMSubscribeEvent extends eventemitter3_1.EventEmitter {
constructor(sdk) {
super();
this.subscribeEvent = new sdk.NIMSubscribeEvent({ emit: this.emit.bind(this) });
}
/** 注册全局回调 */
initEventHandlers() {
return this.subscribeEvent.InitEventHandlers();
}
/** 发布事件
* @param event_data 事件
* @param cb 发布事件回调函数
* @param jsonExtension json扩展参数(备用,目前不需要)
* @return boolean 检查参数如果不符合要求则返回失败
* @note
* <pre>
* 200:成功
* 403:应用没开通事件服务
* 404:禁用了特定事件
* 414:参数错误
* 500:未知错误
* </pre>
*/
publish(data, cb, jsonExtension) {
return new Promise((resolve) => {
this.subscribeEvent.Publish(data, (rescode, eventType, data) => {
if (cb) {
cb(rescode, eventType, data);
}
resolve([rescode, eventType, data]);
}, jsonExtension !== null && jsonExtension !== void 0 ? jsonExtension : '');
});
}
/** 订阅事件
* @param event_type 事件类型
* @param ttl 订阅有效期,单位:秒,范围:60s到30天
* @param sync_type 订阅后是否立即同步最新事件
* @param accid_list 要订阅的用户列表
* @param cb 订阅事件回调函数
* @param jsonExtension json扩展参数(备用,目前不需要)
* @return boolean 检查参数如果不符合要求则返回失败
* @note
* <pre>
* 200:成功
* 414:参数错误
* 500:未知错误
* </pre>
*/
subscribe(eventType, ttl, syncType, accids, cb, jsonExtension) {
return new Promise((resolve) => {
if (!this.subscribeEvent.Subscribe(eventType, ttl, syncType, accids, (rescode, eventType, failedList) => {
if (cb) {
cb(rescode, eventType, failedList);
}
resolve([rescode, eventType, failedList]);
}, jsonExtension !== null && jsonExtension !== void 0 ? jsonExtension : '')) {
resolve(null);
}
});
}
/** 按账号取消指定事件的订阅关系
* @param event_type 事件类型
* @param accid_list 要取消订阅的用户列表
* @param cb 取消订阅事件回调函数
* @param jsonExtension json扩展参数(备用,目前不需要)
* @return boolean 检查参数如果不符合要求则返回失败
* @note
* <pre>
* 200:成功
* 414:参数错误
* 500:未知错误
* </pre>
*/
unSubscribe(eventType, accids, cb, jsonExtension) {
return new Promise((resolve) => {
if (!this.subscribeEvent.UnSubscribe(eventType, accids, (rescode, eventType, failedList) => {
if (cb) {
cb(rescode, eventType, failedList);
}
resolve([rescode, eventType, failedList]);
}, jsonExtension !== null && jsonExtension !== void 0 ? jsonExtension : '')) {
resolve(null);
}
});
}
/** 取消指定事件的全部订阅关系
* @param event_type 事件类型
* @param cb 取消订阅事件回调函数
* @param jsonExtension json扩展参数(备用,目前不需要)
* @return boolean 检查参数如果不符合要求则返回失败
* @note
* <pre>
* 200:成功
* 414:参数错误
* 500:未知错误
* </pre>
*/
batchUnSubscribe(eventType, cb, jsonExtension) {
return new Promise((resolve) => {
if (!this.subscribeEvent.BatchUnSubscribe(eventType, (rescode, eventType) => {
if (cb) {
cb(rescode, eventType);
}
resolve([rescode, eventType]);
}, jsonExtension !== null && jsonExtension !== void 0 ? jsonExtension : '')) {
resolve(null);
}
});
}
/** 按账号查询指定事件订阅关系
* @param event_type 事件类型
* @param accid_list 要查询订阅关系的用户列表
* @param cb 查询订阅关系回调函数
* @param jsonExtension json扩展参数(备用,目前不需要)
* @return boolean 检查参数如果不符合要求则返回失败
* @note
* <pre>
* 200:成功
* 414:参数错误
* 500:未知错误
* </pre>
*/
querySubscribe(eventType, accids, cb, jsonExtension) {
return new Promise((resolve) => {
this.subscribeEvent.QuerySubscribe(eventType, accids, (rescode, eventType, datas) => {
if (cb) {
cb(rescode, eventType, datas);
}
resolve([rescode, eventType, datas]);
}, jsonExtension !== null && jsonExtension !== void 0 ? jsonExtension : '');
});
}
}
exports.NIMSubscribeEvent = NIMSubscribeEvent;
//# sourceMappingURL=subscribe_event.js.map