node-nim
Version:
NetEase IM nodejs wrapper based on NetEase IM C++ SDK
393 lines • 14.3 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.NIMSession = void 0;
const loader_1 = __importDefault(require("../loader"));
const eventemitter3_1 = require("eventemitter3");
class NIMSession extends eventemitter3_1.EventEmitter {
constructor() {
super();
this.session = new loader_1.default.NIMSession({ emit: this.emit.bind(this) });
}
/** 注册全局回调 */
initEventHandlers() {
return this.session.InitEventHandlers();
}
/** 查询置顶会话列表
* @param cb 置顶会话列表查询结果的回调函数
* @return void 无返回值
* @note
* <pre>
* 200:成功
* </pre>
*/
queryStickTopSessionList(cb) {
return new Promise((resolve) => {
this.session.QueryStickTopSessionList((rescode, result) => {
if (cb) {
cb(rescode, result);
}
resolve([rescode, result]);
});
});
}
/** 设置置顶会话
* @param session_id 会话id
* @param to_type 会话类型
* @param ext 扩展字段
* @param cb 置顶会话设置结果的回调函数
* @return void 无返回值
* @note
* <pre>
* 200:成功
* </pre>
*/
setToStickTopSession(session_id, to_type, ext, cb) {
return new Promise((resolve) => {
this.session.SetToStickTopSession(session_id, to_type, ext, (rescode, result) => {
if (cb) {
cb(rescode, result);
}
resolve([rescode, result]);
});
});
}
/** 更新置顶会话列表
* @param session_id 会话id
* @param to_type 会话类型
* @param ext 扩展字段
* @param cb 更新置顶会话设置结果的回调函数
* @return void 无返回值
* @note
* <pre>
* 200:成功
* </pre>
*/
updateToStickTopSession(session_id, to_type, ext, cb) {
return new Promise((resolve) => {
this.session.UpdateToStickTopSession(session_id, to_type, ext, (rescode, result) => {
if (cb) {
cb(rescode, result);
}
resolve([rescode, result]);
});
});
}
/** 取消置顶会话列表
* @param session_id 会话id
* @param to_type 会话类型
* @param cb 取消置顶会话设置结果的回调函数
* @return void 无返回值
* @note
* <pre>
* 200:成功
* </pre>
*/
cancelToStickTopSession(session_id, to_type, cb) {
return new Promise((resolve) => {
this.session.CancelToStickTopSession(session_id, to_type, (rescode, session_id, session_type) => {
if (cb) {
cb(rescode, session_id, session_type);
}
resolve([rescode, session_id, session_type]);
});
});
}
/** 查询指定数量的最后会话数据
* @param limit 要返回的最大数量
* @param cb 查询会话列表的回调函数
* @param jsonExtension json扩展参数(备用,目前不需要)
* @return void 无返回值
*/
queryLastFewSessionAsync(limit, cb, jsonExtension) {
return new Promise((resolve) => {
this.session.QueryLastFewSessionAsync(limit, (rescode, result) => {
if (cb) {
cb(rescode, result);
}
resolve([rescode, result]);
}, jsonExtension);
});
}
/** 查询会话列表,可指定最后一条会话消息要排除掉的类型(列表)
* @param msg_excluded_type_list 最后一条会话消息要排除掉的类型(列表),如果不排除任何消息,传入空列表
* @param cb 查询会话列表的回调函数
* @param jsonExtension json扩展参数(备用,目前不需要)
* @return void 无返回值
*/
queryAllRecentSessionAsync(msg_excluded_type_list, cb, jsonExtension) {
return new Promise((resolve) => {
this.session.QueryAllRecentSessionAsync(msg_excluded_type_list, (rescode, result) => {
if (cb) {
cb(rescode, result);
}
resolve([rescode, result]);
}, jsonExtension);
});
}
/** 删除最近联系人
* @param to_type 会话类型,双人0,群组1 (nim_msglog_def.h)
* @param id 对方的account id或者群组tid。
* @param delete_roaming 是否同时删除漫游消息
* @param cb 最近会话列表项变更的回调函数
* @return boolean 检查参数如果不符合要求则返回失败
* @note
* <pre>
* 200:成功
* </pre>
*/
deleteRecentSession(type, id, cb, delete_roaming) {
return new Promise((resolve) => {
this.session.DeleteRecentSession(type, id, (rescode, session_data, count) => {
if (cb) {
cb(rescode, session_data, count);
}
resolve([rescode, session_data, count]);
}, delete_roaming);
});
}
/** 删除全部最近联系人
* @param jsonExtension json扩展参数(备用,目前不需要)
* @param cb 最近会话列表项变更的回调函数
* @return void 无返回值
* @note
* <pre>
* 200:成功
* </pre>
*/
deleteAllRecentSession(cb, jsonExtension) {
return new Promise((resolve) => {
this.session.DeleteAllRecentSession((rescode, session_data, count) => {
if (cb) {
cb(rescode, session_data, count);
}
resolve([rescode, session_data, count]);
}, jsonExtension);
});
}
/** 删除某会话的漫游消息
* @param to_type 会话类型,双人0,群组1 (nim_msglog_def.h)
* @param id 对方的account id或者群组tid。
* @param jsonExtension json扩展参数(备用,目前不需要)
* @param cb 删除结果 回调回调函数
* @return boolean 检查参数如果不符合要求则返回失败
* @note
* <pre>
* 200:成功
* </pre>
*/
deleteSessionRoamingMessage(to_type, session_id, cb, ext) {
return new Promise((resolve) => {
this.session.DeleteSessionRoamingMessage(to_type, session_id, (rescode, to_type, session_id) => {
if (cb) {
cb(rescode, to_type, session_id);
}
resolve([rescode, to_type, session_id]);
}, ext);
});
}
/** 最近联系人项未读数清零
* @param to_type 会话类型,双人0,群组1 (nim_msglog_def.h)
* @param id 对方的account id或者群组tid。
* @param jsonExtension json扩展参数(备用,目前不需要)
* @param cb 最近会话列表项变更的回调函数
* @return boolean 检查参数如果不符合要求则返回失败
* @note
* <pre>
* 200:成功
* </pre>
*/
setUnreadCountZeroAsync(type, id, cb, jsonExtension) {
return new Promise((resolve) => {
if (!this.session.SetUnreadCountZeroAsync(type, id, (rescode, session_data, count) => {
if (cb) {
cb(rescode, session_data, count);
}
resolve([rescode, session_data, count]);
}, jsonExtension)) {
resolve(null);
}
});
}
/** 最近联系人项未读数清零
* @param is_super_team 会话列表中的会话是否是超大群会话
* @param zero_list 清零的会话信息列表。
* @param cb 最近会话列表项变更的回调函数
* @return boolean 检查参数如果不符合要求则返回失败
* @note
* <pre>
* 200:成功
* </pre>
*/
setMultiUnreadCountZeroAsync(is_super_team, zero_list, cb) {
return new Promise((resolve) => {
if (!this.session.SetMultiUnreadCountZeroAsync(is_super_team, zero_list, (rescode, data_list, unread_count) => {
if (cb) {
cb(rescode, data_list, unread_count);
}
resolve([rescode, data_list, unread_count]);
})) {
resolve(null);
}
});
}
/** 设置会话项是否置顶(置顶属性只保存在本地)
* @param to_type 会话类型
* @param id 对方的account id或者群组tid。
* @param top true - 置顶 false - 取消置顶
* @param cb 回调函数
* @param jsonExtension json扩展参数(备用,目前不需要)
* @return boolean 检查参数如果不符合要求则返回失败
* @note
* <pre>
* 200:成功
* </pre>
*/
setSessionTop(type, id, top, cb, jsonExtension) {
return new Promise((resolve) => {
if (!this.session.SetSessionTop(type, id, top, (rescode, session_data, count) => {
if (cb) {
cb(rescode, session_data, count);
}
resolve([rescode, session_data, count]);
}, jsonExtension)) {
resolve(null);
}
});
}
/** 设置会话项扩展数据(扩展数据只保存在本地)
* @param to_type 会话类型
* @param id 对方的account id或者群组tid。
* @param data 扩展数据,建议使用灵活可扩展的数据结构,例如Json
* @param cb 回调函数
* @param jsonExtension json扩展参数(备用,目前不需要)
* @return boolean 检查参数如果不符合要求则返回失败
* @note
* <pre>
* 200:成功
* </pre>
*/
setSessionExtendData(type, id, data, cb, jsonExtension) {
return new Promise((resolve) => {
if (!this.session.SetSessionExtendData(type, id, data, (rescode, session_data, count) => {
if (cb) {
cb(rescode, session_data, count);
}
resolve([rescode, session_data, count]);
}, jsonExtension)) {
resolve(null);
}
});
}
/** 最近联系人项全部未读数清零
* @param jsonExtension json扩展参数(备用,目前不需要)
* @param cb 最近会话列表项变更的回调函数
* @return boolean 检查参数如果不符合要求则返回失败
* @note
* <pre>
* 200:成功
* </pre>
*/
setAllUnreadCountZeroAsync(cb, jsonExtension) {
return new Promise((resolve) => {
if (!this.session.SetAllUnreadCountZeroAsync((rescode, session_data, count) => {
if (cb) {
cb(rescode, session_data, count);
}
resolve([rescode, session_data, count]);
}, jsonExtension)) {
resolve(null);
}
});
}
/** 根据给定的id查询相应会话的信息
* @param to_type 会话类型
* @param id 对方的account id或者群组tid。
* @param cb 会话信息查询结果的回调函数
* @param jsonExtension json扩展参数(备用,目前不需要)
* @return void 无返回值
* @note
* <pre>
* 200:成功
* </pre>
*/
querySessionDataById(type, id, cb, jsonExtension) {
return new Promise((resolve) => {
this.session.QuerySessionDataById(type, id, (rescode, session_data) => {
if (cb) {
cb(rescode, session_data);
}
resolve([rescode, session_data]);
}, jsonExtension);
});
}
/** 查询会话是漫游消息未拉取信息
* @param session_id 会话id
* @param to_type 会话类型
* @param cb 查询会话是漫游消息未拉取信息回调函数
* @return void 无返回值
* @note
* <pre>
* 200:成功
* </pre>
*/
queryHasmoreRoammsg(session_id, to_type, cb) {
return new Promise((resolve) => {
this.session.QueryHasmoreRoammsg(session_id, to_type, (rescode, info) => {
if (cb) {
cb(rescode, info);
}
resolve([rescode, info]);
});
});
}
/** 查询所有漫游消息未拉取完全的会话
* @param cb 结果回调
* @return void 无返回值
*/
queryAllHasmoreRoammsg(cb) {
return new Promise((resolve) => {
this.session.QueryAllHasmoreRoammsg((rescode, infos) => {
if (cb) {
cb(rescode, infos);
}
resolve([rescode, infos]);
});
});
}
/** 更新会话是漫游消息未拉取信息
* @param msg 对应的消息内容
* @param cb 结果回调
* @return void 无返回值
*/
updateHasmoreRoammsg(msg, cb) {
return new Promise((resolve) => {
this.session.UpdateHasmoreRoammsg(msg, (rescode) => {
if (cb) {
cb(rescode);
}
resolve([rescode]);
});
});
}
/** 删除会话是漫游消息未拉取信息
* @param session_id 会话id
* @param to_type 会话类型
* @param cb 结果回调
* @return void 无返回值
*/
deleteHasmoreRoammsg(session_id, to_type, cb) {
return new Promise((resolve) => {
this.session.DeleteHasmoreRoammsg(session_id, to_type, (rescode) => {
if (cb) {
cb(rescode);
}
resolve([rescode]);
});
});
}
}
exports.NIMSession = NIMSession;
//# sourceMappingURL=session.js.map
;