findme-miniprogram-frontend/utils/nim.js

195 lines
8.4 KiB
JavaScript
Raw Permalink Normal View History

2025-12-27 17:16:03 +08:00
/*
*
* Esc F1 F2 F3 F4 F5 F6 F7 F8 F9F10F11F12 P/SS LP/B
*
*
* ~ `│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│ BacSp │ │Ins│Hom│PUp│ │N L│ / │ * │ - │
*
* Tab Q W E R T Y U I O P { [} ] | \ DelEndPDn 7 8 9
* +
* Caps A S D F G H J K L : ;" ' Enter 4 5 6
*
* Shift Z X C V B N M < ,> .? / Shift 1 2 3
* E
* Ctrl Alt Space Alt Ctrl 0 .
*
*/
/*
* @Description: NIM模块裁剪器
* @Author: realrain 1936648485@qq.com
* @Date: 2025-11-15 21:08:12
* @LastEditors: realrain 1936648485@qq.com
* @LastEditTime: 2025-11-15 21:41:44
* @FilePath: \findme-miniprogram\utils\nim.js
* @X/Facebook: 1936648485@qq.com ~~~~~~~~~~~~~~~~~~~~~~~ Blogreallyrain.com
* Copyright (c) 2025 by real-rain, All Rights Reserved.
*/
import {
NIM,
setAdapters,
wxAdapters,
V2NIMMessageService,
V2NIMMessageLogUtil,
V2NIMConversationService,
V2NIMStorageService,
V2NIMTeamService,
V2NIMUserService,
V2NIMFriendService,
V2NIMSubscriptionService,
V2NIMConst
} from 'nim-web-sdk-ng/dist/esm/nim'
/**
* 设置 NIM 运行的环境wxAdapters 表示程序在微信环境运行
*/
setAdapters(wxAdapters)
/**
* 注册了消息服务和会话服务
*
* 具体有哪些模块可以注入, 请参照 SDK 使用说明: https://doc.yunxin.163.com/messaging2/guide/DcyMjA1Njk?platform=client#%E6%96%B9%E5%BC%8F%E4%BA%8Cesm-%E5%BC%95%E5%85%A5
*/
/**
* 消息模块.
*
* 影响 API 包含 V2NIMMessageService 下全部接口.
*/
NIM.registerService(V2NIMMessageService, 'V2NIMMessageService')
/**
* 消息模块-消息记录相关工具类. 包含查询消息历史等功能.
*
* 影响 API 包含 V2NIMMessageService 的部分接口, 举例:
* getMessageList, getMessageListEx,
* getMessageListByRefers, clearHistoryMessage
*/
NIM.registerService(V2NIMMessageLogUtil, 'V2NIMMessageLogUtil')
/**
* 消息模块-扩展功能. 包含 pin 消息, 收藏消息等功能
*
* 影响 API 包含 V2NIMMessageService 的部分接口, 举例:
* pinMessage, unpinMessage, updatePinMessage, voiceToText,
* getPinnedMessageList, addQuickComment, removeQuickComment, getQuickCommentList, addCollection,
* removeCollections, updateCollectionExtension, getCollectionListByOption,
* getCollectionListExByOption, searchCloudMessages, searchCloudMessagesEx
*/
// NIM.registerService(V2NIMMessageExtendUtil, 'V2NIMMessageExtendUtil') // 🔥 暂时注释,该模块可能未导入
/**
* 消息序列化与反序列化工具
*
* 影响 API 包含 V2NIMMessageConverter 的全部接口.
*/
// NIM.registerService(V2NIMMessageConverter, 'V2NIMMessageConverter')
/**
* 云端存储模块, 包含上传文件能力
*
* 影响 API 包含 V2NIMMessageService 的部分接口, 举例:
* V2NIMMessageService.sendMessage (发图片/文件类型的消息时)
* V2NIMMessageService.cancelMessageAttachmentUpload (取消文件消息的上传)
*
* 影响 API 包含 V2NIMStorageService 的全部接口.
*/
NIM.registerService(V2NIMStorageService, 'V2NIMStorageService')
/**
* 云端会话模块.
*
* 影响 API 包含 V2NIMConversationService 的全部接口.
*/
NIM.registerService(V2NIMConversationService, 'V2NIMConversationService')
/**
* 群组模块.
*
* 影响 API 包含 V2NIMSettingService 的部分接口, 举例:
* setTeamMessageMuteMode, getTeamMessageMuteMode, getAllTeamMessageMuteMode
*
* 影响 API 包含 V2NIMTeamService 的全部接口.
*/
NIM.registerService(V2NIMTeamService, 'V2NIMTeamService')
/**
* 用户模块.
*
* 影响 API 包含 V2NIMSettingService 的部分接口, 举例:
* getConversationMuteStatus, setP2PMessageMuteMode
*
* 影响 API 包含 V2NIMUserService 的全部接口.
*/
NIM.registerService(V2NIMUserService, 'V2NIMUserService') // 用户模块
/**
* 好友模块.
*
* 影响 API 包含 V2NIMFriendService 的全部接口.
*/
NIM.registerService(V2NIMFriendService, 'V2NIMFriendService')
/**
* 通知模块.
*
* 影响 API 包含 V2NIMNotificationService 的全部接口.
*/
// NIM.registerService(V2NIMNotificationService, 'V2NIMNotificationService')
/**
* 设置模块.
*
* 影响 API 包含 V2NIMSettingService 的全部接口.
* - 包含推送配置, 会话免打扰设置.
* - 与会话免打扰有关的设置需要引入群, 用户模块
*/
// NIM.registerService(V2NIMSettingService, 'V2NIMSettingService')
/**
* AI 数字人模块.
*
* 影响 API 包含 V2NIMMessageService 的部分接口与事件:
* sendMessage (发送参数 aiConfig, 配置 AI 相关)
* onReceiveMessages (收消息事件, 回调的 V2NIMMessage 消息体参见属性 aiConfig streamConfig 流式输出)
* onReceiveMessagesModified (消息更新事件, 回调的 V2NIMMessage 消息体参见属性 aiConfig streamConfig 流式输出)
*
* 影响 API 包含 V2NIMAIService 的全部接口.
*/
// NIM.registerService(V2NIMAIService, 'V2NIMAIService')
/**
* 订阅模块, 如上下线状态通知订阅.
*
* 影响 API 包含 V2NIMSubscriptionService 的全部接口.
*/
NIM.registerService(V2NIMSubscriptionService, 'V2NIMSubscriptionService')
/**
* 信令模块
*
* 影响 API 包含 V2NIMSignallingService 的全部接口.
*/
// NIM.registerService(V2NIMSignallingService, 'V2NIMSignallingService')
/**
* 服务代理相关
*
* 影响 API 包含 V2NIMPassthroughService 的全部接口.
*/
// NIM.registerService(V2NIMPassthroughService, 'V2NIMPassthroughService')
/**
* 此外某些模块包含工具类, 只需要引入对应模块服务, 就能直接使用该工具类, 关系如下
*
* V2NIMConversationIdUtil(会话 id 工具类) => V2NIMMessageService, V2NIMConversationService
* V2NIMClientAntispamUtil(客户端反垃圾工具类) => V2NIMMessageService
* V2NIMMessageCreator(消息构造工具类) => V2NIMMessageService
*
* 注意这些工具类不是直接导出的而是通过 NIM 实例访问
* - NIM.V2NIMMessageCreator
* - NIM.V2NIMConversationIdUtil
*/
export { NIM, V2NIMConst }