Options
All
  • Public
  • Public/Protected
  • All
Menu

Module MsgServiceInterface

Index

Type Aliases

DeleteSelfMsgsOptions: { ext?: string; msgs: IMMessage[] }

Type declaration

  • Optional ext?: string

    扩展字段

  • msgs: IMMessage[]

    待删除的消息对象

DeleteSelfMsgsResult: { deletedTime: number; from: string; idClient: string; idServer: string; scene: "p2p" | "team"; time: number; to: string }

Type declaration

  • deletedTime: number

    删除时间

  • from: string

    此消息的发送者

  • idClient: string

    此消息的 idClient

  • idServer: string

    此消息的 idServer

  • scene: "p2p" | "team"

    此消息的场景,只有 p2p, team ,超大群暂时不允许单向删除

  • time: number

    此消息的发送时间

  • to: string

    此消息的接收者

ForwardMsgOptions: { msg: IMMessage; scene: TMsgScene; to: string }

Type declaration

  • msg: IMMessage

    待转发的消息对象

  • scene: TMsgScene
  • to: string

    转发的目标,账号或者群id

GetTeamMsgReadAccountsOptions: { teamMsgReceipt: teamMsgReceipt }

Type declaration

GetTeamMsgReadAccountsResult: { readAccounts: string[]; teamMsgReceipt: { idClient: string; teamId: string }; unreadAccounts: string[] }

Type declaration

  • readAccounts: string[]
  • teamMsgReceipt: { idClient: string; teamId: string }
    • idClient: string
    • teamId: string
  • unreadAccounts: string[]
GetTeamMsgReadResult: { idClient: string; idServer: string; read: number; teamId: string; unread: number }

Type declaration

  • idClient: string
  • idServer: string
  • read: number
  • teamId: string
  • unread: number
GetTeamMsgReadsOptions: { teamMsgReceipts: teamMsgReceipt[] }

Type declaration

GetTeamMsgReadsResult: { teamMsgReceipts: GetTeamMsgReadResult[] }

Type declaration

IMMessage: { antiSpamInfo?: TMsgAntiSpamInfo; attach?: StrAnyObj; body: string; callbackExt?: string; ext?: string; feature: TMsgFeature; flow: "in" | "out"; from: string; fromClientType?: TClientType; fromDeviceId?: string; fromNick?: string; idClient: string; idServer?: string; pushInfo?: TMsgPushInfo; scene: TMsgScene; sessionId: string; setting?: TMsgSetting; status: TMsgStatus; subType?: number; target: string; teamSpecializationInfo?: TMsgTeamSpecializationInfo; threadMessageInfo?: TMsgThreadMsgInfo; time: number; to: string; type: TMsgType; userUpdateTime: number }

Type declaration

  • Optional antiSpamInfo?: TMsgAntiSpamInfo

    反垃圾相关配置

  • Optional attach?: StrAnyObj

    附加消息

    像是 file,geo 类型的消息,文本内容为空,在附加消息里会存在一个对象代表其内容

  • body: string

    消息的文本内容

  • Optional callbackExt?: string

    服务器第三方回调的扩展字段

  • Optional ext?: string

    扩展字段

  • feature: TMsgFeature

    通知属性

  • flow: "in" | "out"

    消息的流向

    in 表示此消息是收到的消息 out 表示此消息是发出的消息

  • from: string

    消息发送方, 帐号

  • Optional fromClientType?: TClientType

    发送方的设备类型

  • Optional fromDeviceId?: string

    发送端设备id

  • Optional fromNick?: string

    消息发送方的昵称

  • idClient: string

    sdk 端测唯一标识,可做主键使用

  • Optional idServer?: string

    消息服务器测的标识

    它并不一定存在,故而这条消息的唯一标识请选用 idClient

  • Optional pushInfo?: TMsgPushInfo

    推送相关配置

  • scene: TMsgScene

    场景(会话类型)

  • sessionId: string

    消息所属的会话的ID

  • Optional setting?: TMsgSetting

    消息的杂项设置

  • status: TMsgStatus

    消息发送状态

    'sending' 发送中 'success' 发送成功 'fail' 发送失败

  • Optional subType?: number

    开发者自定义的消息子类型,格式为大于0的整数

  • target: string

    聊天对象, 账号或者群id

  • Optional teamSpecializationInfo?: TMsgTeamSpecializationInfo

    群组特化的杂项配置

  • Optional threadMessageInfo?: TMsgThreadMsgInfo

    thread 消息的相关字段。 这里举例回复了多次的消息:消息C1 的 replyMsg 是消息B1,消息C1 的 threadMsg 是消息A

    消息A |
    消息B1 消息B2 | 消息C1

  • time: number

    消息发送成功的时间戳(单位毫秒)

  • to: string

    消息接收方, 帐号或群id

  • type: TMsgType

    消息类型

  • userUpdateTime: number

    用户最后更新时间

NIM_BroadcastMessage: { body: string; fromAccid: string; id: string; time: number }

广播消息定义

Type declaration

  • body: string

    消息内容

  • fromAccid: string

    该消息的发送者账号(account id)

  • id: string

    广播消息 id

  • time: number

    消息时间戳

RecallMsgOptions: { apnsText?: string; attach?: string; env?: string; msg: IMMessage; ps?: string; pushPayload?: string }

Type declaration

  • Optional apnsText?: string

    自定义推送文案

  • Optional attach?: string

    附加信息,推荐使用 JSON 格式化字符串

  • Optional env?: string

    抄送环境

  • msg: IMMessage

    要撤回的消息对象

  • Optional ps?: string

    附言

  • Optional pushPayload?: string

    第三方自定义的推送属性,限制使用 JSON 格式化的字符串

ResendMsgOptions: { msg: IMMessage }

Type declaration

  • msg: IMMessage

    请传入完整的消息对象

SendMsgReceiptOptions: { msg: IMMessage }

Type declaration

SendMsgReceiptResult: { idClient: string; time: number; to: string }

Type declaration

  • idClient: string
  • time: number
  • to: string
SendTeamMsgReceiptOptions: { teamMsgReceipts: teamMsgReceipt[] }

Type declaration

TClientType: keyof typeof EClientType
TMsgAntiSpamInfo: { antiSpamBIZID?: string; antiSpamContent?: string; antiSpamUsingYidun?: number; clientAntispamHitting?: boolean; needAntiSpam?: boolean; yidunAntiCheating?: string; yidunAntiSpamExtension?: string; yidunAntiSpamResult?: string; yidunCallbackURL?: string }

反垃圾相关配置

Type declaration

  • Optional antiSpamBIZID?: string

    用户配置的对某些单条消息另外的反垃圾的业务ID

  • Optional antiSpamContent?: string

    开发者自定义的反垃圾字段,长度限制 5000。格式如 '{"type":1,"data":"YOUR_DATA_KEY"}'

  • Optional antiSpamUsingYidun?: number

    单条消息是否使用易盾反垃圾。 默认 0: (在开通易盾的情况下)不过易盾反垃圾而是通用反垃圾。 其他值都是按照原来的规则

  • Optional clientAntispamHitting?: boolean

    是否命中客户端反垃圾

  • Optional needAntiSpam?: boolean

    (功能暂时不开放)是否需要使用自定义反垃圾字段 antiSpamContent, 缺省false 注:此字段与 antiSpamContent 联合起来使用

  • Optional yidunAntiCheating?: string

    易盾反垃圾增强反作弊专属字段, 限定使用 JSON 序列化字符串,长度限制1024

  • Optional yidunAntiSpamExtension?: string

    易盾反垃圾扩展字段,限制json,长度限制1024

  • Optional yidunAntiSpamResult?: string

    易盾反垃圾返回的结果字段。 若开启了易盾反垃圾,并且针对文本或图片如果被反垃圾策略匹配中,端测会透传此反垃圾结果字段返回。 格式为 JSON 序列化的字符串

  • Optional yidunCallbackURL?: string

    易盾check的回调URL,目前仅支持Audio类型的消息,最长256个字符,如果不合法则忽略该参数

TMsgFeature: keyof typeof EMsgFeature
TMsgPushInfo: { needPush?: boolean; needPushBadge?: boolean; needPushNick?: boolean; pushApnsText?: string; pushPayload?: string }

推送相关配置

Type declaration

  • Optional needPush?: boolean

    是否需要推送 107

  • Optional needPushBadge?: boolean

    是否要做消息计数(推送消息后的 app 角标)109

  • Optional needPushNick?: boolean

    需要推送昵称 // 110

  • Optional pushApnsText?: string

    推送文本,不填则不推送

  • Optional pushPayload?: string

    第三方自定义的推送属性,长度2048

TMsgScene: keyof typeof EMsgScene
TMsgSetting: { envConfig?: string; isMuted?: boolean; needOffline?: boolean; needRoaming?: boolean; needRouted?: boolean; needSaveHistory?: boolean; needSelfSync?: boolean; needUpdateSession?: boolean; resendFlag?: boolean }

Type declaration

  • Optional envConfig?: string

    (可选) 指向自定义抄送的配置

  • Optional isMuted?: boolean

    该消息在接收方是否应该被静音。此字段服务器返回,端测不需要自己设置

  • Optional needOffline?: boolean

    是否支持离线消息,缺省则 true

  • Optional needRoaming?: boolean

    该消息是否支持漫游 缺省则 true

  • Optional needRouted?: boolean

    是否要抄送

  • Optional needSaveHistory?: boolean

    是否存云端消息历史,缺省则 true

  • Optional needSelfSync?: boolean

    该消息是否支持发送者多端同步

  • Optional needUpdateSession?: boolean

    是否需要刷新服务器会话列表,0:否,1:是;只有消息存离线的情况下,才会判断该参数,缺省:1

  • Optional resendFlag?: boolean

    是否为重发的消息

TMsgStatus: keyof typeof EMsgStatus
TMsgTeamSpecializationInfo: { ackSnapshot: number; forcePushIDsList?: string; isACKSent: boolean; needACK?: boolean; needForcePush?: boolean; pushContent?: string }

Type declaration

  • ackSnapshot: number

    群已读消息快照大小(即消息发送时的群人数-1)

  • Optional forcePushIDsList?: string

    强推的成员账号

    例:'["id1", "id2"]' 注:如果要设置为强推所有成员,则将此参数设置为 "#%@all@%#"

  • isACKSent: boolean

    是否已经发送群消息已读回执。(端测维护此字段) 若调用 sendTeamMsgReceipt,会对此消息的 teamSpecializationInfo.isACKSent 标记为 true。

    注:当 db 开启才能生效

  • Optional needACK?: boolean

    群消息是否需要已读业务

  • Optional needForcePush?: boolean

    群组消息强推开关,默认 false,强推全员设置 true 举例:群里艾特人的场景,只需要通知某几个账号知道

  • Optional pushContent?: string

    强推文本(可扩展为区别与普通推送的推送文本),长度限制 150 字符

TMsgThreadMsgInfo: { replyMsgFromAccount?: string; replyMsgIdClient?: string; replyMsgIdServer?: string; replyMsgTime?: number; replyMsgToAccount?: string; threadMsgFromAccount?: string; threadMsgIdClient?: string; threadMsgIdServer?: string; threadMsgTime?: number; threadMsgToAccount?: string }

thread 消息的相关字段。 这里举例回复了多次的消息:消息C1 的 replyMsg 是消息B1,消息C1 的 threadMsg 是消息A

消息A |
消息B1 消息B2 | 消息C1

Type declaration

  • Optional replyMsgFromAccount?: string

    被回复消息的发送者账号

  • Optional replyMsgIdClient?: string

    被回复消息的idClient

  • Optional replyMsgIdServer?: string

    被回复消息的idServer

  • Optional replyMsgTime?: number

    被回复消息的时间

  • Optional replyMsgToAccount?: string

    被回复消息的接受者账号

  • Optional threadMsgFromAccount?: string

    thread 消息的发送者账号

  • Optional threadMsgIdClient?: string
  • Optional threadMsgIdServer?: string
  • Optional threadMsgTime?: number

    thread消息的时间

  • Optional threadMsgToAccount?: string

    thread消息的接受者账号

TMsgType: keyof typeof EMsgType
TeamMsgReceipt: { account: string; idClient: string; idServer: string; read: number; teamId: string; unread: number }

Type declaration

  • account: string
  • idClient: string
  • idServer: string
  • read: number
  • teamId: string
  • unread: number
teamMsgReceipt: { idClient: string; idServer: string; teamId: string }

Type declaration

  • idClient: string
  • idServer: string
  • teamId: string