@fork-anyone/node-nim
Version:
NetEase IM nodejs wrapper based on NetEase IM C++ SDK
91 lines • 2.97 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.V2NIMSubscriptionService = void 0;
const eventemitter3_1 = require("eventemitter3");
/** @brief 订阅服务 */
class V2NIMSubscriptionService extends eventemitter3_1.EventEmitter {
constructor(sdk) {
super();
this.instance = new sdk.V2NIMSubscriptionService({ emit: this.emit.bind(this) });
}
/**
* @brief 订阅用户状态
* @param option 订阅用户状态选项
* @returns Promise<string[]>
* @example
* ```javascript
* const result = await v2.subscriptionService.subscribeUserStatus({
* accountIds: ['account1', 'account2'],
* })
* ```
*/
subscribeUserStatus(option) {
return new Promise((resolve, reject) => {
this.instance.subscribeUserStatus(option, (result) => {
resolve(result);
}, (error) => {
reject(error);
});
});
}
/**
* @brief 取消用户状态订阅
* @param option 取消订阅用户状态选项
* @returns Promise<string[]>
* @example
* ```javascript
* const result = await v2.subscriptionService.unsubscribeUserStatus({
* accountIds: ['account1', 'account2'],
* })
* ```
*/
unsubscribeUserStatus(option) {
return new Promise((resolve, reject) => {
this.instance.unsubscribeUserStatus(option, (result) => {
resolve(result);
}, (error) => {
reject(error);
});
});
}
/**
* @brief 发布用户自定义状态
* @param params 发布自定义用户状态参数
* @returns Promise<V2NIMCustomUserStatusPublishResult>
* @example
* ```javascript
* const result = await v2.subscriptionService.publishCustomUserStatus({
* statusType: 10001,
* duration: 60
* })
* ```
*/
publishCustomUserStatus(params) {
return new Promise((resolve, reject) => {
this.instance.publishCustomUserStatus(params, (result) => {
resolve(result);
}, (error) => {
reject(error);
});
});
}
/** @brief 查询用户状态订阅关系
* @param accountIds 账号列表
* @returns Promise<V2NIMUserStatusSubscribeResult[]>
* @example
* ```javascript
* const result = await v2.subscriptionService.queryUserStatusSubscriptions(['account1', 'account2'])
* ```
*/
queryUserStatusSubscriptions(accountIds) {
return new Promise((resolve, reject) => {
this.instance.queryUserStatusSubscriptions(accountIds, (result) => {
resolve(result);
}, (error) => {
reject(error);
});
});
}
}
exports.V2NIMSubscriptionService = V2NIMSubscriptionService;
//# sourceMappingURL=v2_nim_subscription_service.js.map