数据结构
Auth Token
授权令牌。
字段 |
类型 |
必填 |
默认值 |
描述 |
---|---|---|---|---|
|
string |
Y |
– |
令牌编码 |
|
string |
Y |
– |
App 的访问域 |
|
string |
Y |
– |
App 的 Key 串 |
|
long |
Y |
0 |
令牌绑定的联系人 ID |
|
long |
Y |
– |
发布时间 |
|
long |
Y |
– |
过期时间 |
|
JSON |
Y |
– |
主描述信息 Primary Description |
JSON 示例
{
"code" : "HmKZiQBbuXBuiFijgTTXbwKHeveWjItP",
"domain" : "shixincube.com",
"appKey" : "shixin-cubeteam-opensource-appkey",
"cid" : 1615268975051,
"issues" : 1617005161851,
"expiry" : 1617609961851,
"description" : {
"address" : "127.0.0.1",
"port" : 7000,
"primaryContent" : {
"FileStorage" : {
"fileURL" : "http://127.0.0.1:7010/filestorage/file/",
"fileSecureURL" : "https://127.0.0.1:7017/filestorage/file/"
},
"MultipointComm" : {
"iceServers" : [
{
"urls" : "turn:202.183.15.67:3478",
"username" : "shixincube.com",
"credential" : "cube_shixin"
}
]
}
}
}
}
Primary Description
主内容描述。用于配置客户端各参数,为各模块提供必要的配置信息。
字段 |
类型 |
必填 |
默认值 |
描述 |
---|---|---|---|---|
|
string |
Y |
– |
客户端需要优先连接的主地址 |
|
int |
Y |
– |
客户端需要优先连接的端口 |
|
JSON |
Y |
– |
对客户端进行配置的信息 |
备注
字段 primaryContent 数据格式由各个模块填写以模块名为键的模块的配置参数。
JSON 示例
{
"address" : "127.0.0.1",
"port" : 7000,
"primaryContent" : {
"FileStorage" : {
"fileURL" : "http://127.0.0.1:7010/filestorage/file/",
"fileSecureURL" : "https://127.0.0.1:7017/filestorage/file/"
},
"MultipointComm" : {
"iceServers" : [
{
"urls" : "turn:202.183.15.67:3478",
"username" : "shixincube.com",
"credential" : "cube_shixin"
}
]
}
}
}
Device
设备描述。
字段 |
类型 |
必填 |
默认值 |
描述 |
---|---|---|---|---|
|
string |
Y |
– |
设备名称 |
|
string |
Y |
– |
设备平台描述 |
小技巧
设备名称一般为:Web、Windows、Mac、Linux、iPhone、iPad、Android、AndroidPad等。平台描述采用“厂商+平台名+平台版本信息+操作系统信息”的字符串拼接形式。
JSON 示例
{
"name" : "Web",
"platform": "Chrome/Mac OS X 10.15"
}
Contact
联系人实体。联系人是魔方管理的最小用户单位,表示一个可被管理的基础实体,代表一个具体的用户及其关联的设备。
字段 |
类型 |
必填 |
默认值 |
描述 |
---|---|---|---|---|
|
long |
Y |
– |
联系人 ID |
|
string |
Y |
– |
联系人所在域 |
|
long |
Y |
– |
数据时间戳 |
|
string |
Y |
– |
联系人名称 |
|
string |
N |
– |
联系人名称的拼音形式 |
|
JSON |
N |
– |
关联的上下文数据 |
|
string |
N |
– |
外部关联 ID |
|
Array< Device > |
N |
– |
联系人当前登录的设备列表 |
|
N |
– |
当前终端联系人使用的设备 |
JSON 示例
{
"id" : 1615268975051,
"domain" : "shixincube.com",
"timestamp" : 1615271263193,
"name" : "时信开发者",
"namePY" : "shi,xin,kai,fa,zhe",
"externalId" : "lei3_2020",
"devices" : [
{
"address" : "127.0.0.1",
"port" : 52568,
"name" : "Web",
"platform" : "Firefox/Mac OS X 10.15"
}
],
"context": {
"id" : 1615268975051,
"account" : "xujiangwei",
"name" : "时信开发者",
"token" : "usJbeagOKAwpBEYKBUKvbaricuKfaKum",
"avatar" : "avatar16.png",
"state" : 0,
"region" : "--",
"department" : "--",
"last" : 1617240922478
}
}
Contact Appendix
联系人的附录。附录用于记录联系人的相关操作数据。
字段 |
类型 |
必填 |
默认值 |
描述 |
---|---|---|---|---|
|
JSON |
Y |
– |
附录所属的联系人,参看 Contact |
|
string |
Y |
– |
该联系人的备注名 |
JSON 示例
{
"contact": {
"id" : 1615268975051,
"domain" : "shixincube.com",
"timestamp" : 1615271263193,
"name" : "时信开发者",
"namePY" : "shi,xin,kai,fa,zhe",
"context": {
"id" : 1615268975051,
"account" : "xujiangwei",
"name" : "时信开发者",
"token" : "usJbeagOKAwpBEYKBUKvbaricuKfaKum",
"avatar" : "avatar16.png",
"state" : 0,
"region" : "--",
"department" : "--",
"last" : 1617240922478
}
},
"remarkName" : "银河之外的你"
}
Group
群组描述。群组是一系列联系人的集合,通过群组将联系人进行集中管理。
字段 |
类型 |
必填 |
默认值 |
描述 |
---|---|---|---|---|
|
long |
Y |
– |
群组 ID |
|
string |
Y |
– |
群组所在域 |
|
long |
Y |
– |
数据时间戳 |
|
string |
Y |
– |
群组名称 |
|
string |
Y |
– |
群组标签 |
|
long |
Y |
– |
群组当前群主的 ID |
|
long |
Y |
– |
群组的创建时间 |
|
long |
Y |
– |
群组的最后一次活跃时间戳 |
|
int |
Y |
– |
群组状态,参看 Group State |
|
Array<long> |
N |
– |
群组成员的 ID 列表 |
|
Array< Contact > |
N |
– |
群组成员列表。 |
JSON 示例
{
"id" : 1151210247,
"domain" : "shixincube.com",
"timestamp" : 1615278694211,
"name" : "这是一个群",
"ownerId" : 1615268975051,
"tag" : "public",
"creation" : 1617197011036,
"lastActive" : 1617197111210,
"state" : 0,
"members" : [
1615268975051,
50001001,
50001005,
50001004,
50001003,
50001002
]
}
Group Appendix
群组的附录。附录用于记录群组的相关操作数据。
字段 |
类型 |
必填 |
默认值 |
描述 |
---|---|---|---|---|
|
long |
Y |
– |
附录所属的群组 ID |
|
JSON |
Y |
– |
附录所属的群组的数据,参看 Group |
|
string |
Y |
– |
群组公告 |
|
long |
Y |
– |
群组公告编写人的 ID |
|
long |
Y |
– |
群组公告的更新时间 |
|
Array<JSON> |
Y |
– |
成员的备注名清单,JSON 主键: |
|
string |
Y |
|
群组的备注名 |
|
boolean |
Y |
|
成员对该群是否进行了关注。 |
|
boolean |
Y |
|
是否需要显示群组成员的名称 |
|
Array<JSON> |
N |
– |
申请人清单,JSON 主键: |
|
long |
N |
– |
群组的通讯 ID |
Group State
群组的状态描述。
状态名 |
状态码 |
状态描述 |
---|---|---|
Normal |
0 |
正常状态 |
Dismissed |
1 |
解散状态 |
Forbidden |
2 |
禁用状态 |
HighRisk |
3 |
高风险状态 |
Disabled |
9 |
失效状态 |
Contact Zone
联系人分区。联系人分区是联系人和群组的集合,这个集合里没有管理逻辑和规则,可以按照需求随意修改分区数据。 例如,用户的“好友列表”就可以是一个名为“friends”的分区。
字段 |
类型 |
必填 |
默认值 |
描述 |
---|---|---|---|---|
|
long |
Y |
– |
分区的 ID |
|
string |
Y |
– |
分区所属的域 |
|
long |
Y |
– |
数据的时间戳 |
|
long |
Y |
– |
分区所属的联系人 ID |
|
string |
Y |
– |
分区名称, 分区名称是分区的唯一标识 |
|
string |
Y |
– |
分区的显示名 |
|
int |
Y |
– |
分区状态: |
|
boolean |
Y |
|
分区是否是端到端对等模式 |
|
Array<JSON> |
N |
– |
分区里的参与者,参看 Contact Zone Participant |
Contact Zone Participant
分区参与人。
字段 |
类型 |
必填 |
默认值 |
描述 |
---|---|---|---|---|
|
long |
Y |
– |
参与人 ID |
|
int |
Y |
– |
参与人类型: |
|
long |
Y |
– |
数据的时间戳 |
|
int |
Y |
– |
参与人状态,参看 Contact Zone Participant State |
|
long |
Y |
– |
邀请人的 ID |
|
string |
Y |
|
加入分区时的附言 |
|
JSON |
N |
– |
Contact Zone Participant State
状态名 |
状态码 |
状态描述 |
---|---|---|
Normal |
0 |
正常状态 |
Pending |
1 |
待处理状态 |
KnownPending |
2 |
已知待处理状态 |
Reject |
3 |
拒绝 |
Group Bundle
群组操作时受影响的相关数据描述。
字段 |
类型 |
必填 |
默认值 |
描述 |
---|---|---|---|---|
|
JSON |
Y |
– |
群组数据 Group |
|
Array<long> |
Y |
– |
群组操作时变化的群成员 ID 列表 |
|
long |
N |
– |
本次操作的联系人的 ID |
File Label
文件标签。文件标签表示可被存储到系统的文件实体。
字段 |
类型 |
必填 |
默认值 |
描述 |
---|---|---|---|---|
|
long |
Y |
– |
标签的 ID |
|
string |
Y |
– |
标签所属的域 |
|
string |
Y |
– |
文件码 |
|
long |
Y |
– |
标签所属的联系人 ID |
|
string |
Y |
– |
文件名 |
|
long |
Y |
– |
文件大小,单位:字节 |
|
long |
Y |
– |
文件最后一次修改时间戳 |
|
long |
Y |
– |
文件在服务器处理完成时的时间戳 |
|
long |
Y |
– |
标签的失效时间戳 |
|
string |
Y |
– |
文件类型 |
|
string |
N |
– |
文件内容的 MD5 散列码 |
|
string |
N |
– |
文件内容的 SHA1 散列码 |
|
string |
N |
– |
文件的访问 URL ,默认使用 HTTP 协议 |
|
string |
N |
– |
文件的安全访问 URL ,默认使用 HTTPS 协议 |
File Anchor
文件锚点。文件锚点用于客户端记录文件处理流程的相关信息。
字段 |
类型 |
必填 |
默认值 |
描述 |
---|---|---|---|---|
|
string |
Y |
– |
文件码 |
|
string |
Y |
– |
文件名 |
|
long |
Y |
– |
文件大小,单位:字节 |
|
long |
Y |
– |
文件最后一次修改时间 |
|
long |
Y |
– |
该锚点对应的文件的数据位置 |
File Thumbnail
文件缩略图。
字段 |
类型 |
必填 |
默认值 |
描述 |
---|---|---|---|---|
|
long |
Y |
– |
缩略图 ID |
|
string |
Y |
– |
缩略图所属的域 |
|
Y |
– |
缩略图的文件标签 |
|
|
int |
Y |
– |
缩略图宽度 |
|
int |
Y |
– |
缩略图高度 |
|
string |
Y |
– |
源文件的文件码 |
|
int |
N |
– |
源文件的宽度 |
|
int |
N |
– |
源文件的高度 |
|
int |
Y |
– |
缩略图质量,取值范围: |
Directory
文件目录。
字段 |
类型 |
必填 |
默认值 |
描述 |
---|---|---|---|---|
|
long |
Y |
– |
目录的 ID |
|
string |
Y |
– |
目录所属的域 |
|
long |
N |
– |
目录所属的文件层级 ID |
|
string |
Y |
– |
目录名 |
|
long |
Y |
– |
目录创建时间 |
|
long |
Y |
– |
目录最后一次修改时间 |
|
long |
Y |
– |
目录包含的所有文件大小 |
|
boolean |
Y |
– |
是否是隐藏目录 |
|
long |
N |
– |
父目录 ID |
|
long |
Y |
– |
包含的子目录数量 |
|
long |
Y |
– |
包含的文件数量 |
|
Array< Directory > |
N |
– |
包含的所有子目录列表 |
File Attachment
消息的文件附件。
字段 |
类型 |
必填 |
默认值 |
描述 |
---|---|---|---|---|
|
Array< File Anchor > |
Y |
– |
附件包含的文件锚点列表 |
|
Array< File Label > |
Y |
– |
附件包含的文件标签列表 |
|
boolean |
Y |
|
附件文件是否是源文件的压缩文件 |
Trace
操作痕迹描述。
字段 |
类型 |
必填 |
默认值 |
描述 |
---|---|---|---|---|
|
string |
Y |
– |
追踪串。用于识别痕迹的随机字符串。 |
|
N |
– |
留痕的联系人。 |
|
|
long |
N |
– |
留痕的联系人 ID 。 |
Visit Trace
访问痕迹记录。
字段 |
类型 |
必填 |
默认值 |
描述 |
---|---|---|---|---|
|
string |
Y |
– |
操作平台: |
|
long |
Y |
– |
记录的时间。 |
|
string |
Y |
– |
操作时的地址。 |
|
string |
Y |
– |
可访问的 URL 。 |
|
string |
Y |
– |
操作时数据访问的站点域名。 |
|
string |
Y |
– |
操作界面标题。 |
|
JSON Object |
Y |
– |
设备的屏幕参数信息: |
|
string |
Y |
– |
系统的语言。 |
|
string |
N |
– |
浏览器的 User Agent 描述。 |
|
JSON Object |
N |
– |
小程序的 Agent 描述。 |
|
string |
Y |
– |
事件名。 |
|
string |
N |
– |
事件标签。 |
|
JSON Object |
N |
– |
事件参数。 |
|
long |
N |
– |
分享人 ID 。 |
|
long |
N |
– |
上一级分享人 ID 。 |
|
long |
N |
– |
触发记录的联系人 ID 。 |
|
string |
N |
– |
触发记录的联系人的域。 |
Message
即时消息结构。
字段 |
类型 |
必填 |
默认值 |
描述 |
---|---|---|---|---|
|
long |
Y |
– |
消息的 ID |
|
string |
Y |
– |
消息所属的域 |
|
long |
Y |
– |
消息来源的 ID |
|
long |
Y |
– |
消息投送目标的 ID |
|
long |
Y |
– |
消息转副本之后的源 ID |
|
long |
Y |
– |
副本持有人 |
|
long |
Y |
– |
消息生成时的源时间戳 |
|
long |
Y |
– |
消息到达接入层时的时间戳 |
|
int |
Y |
– |
消息状态,参看 Message State |
|
int |
Y |
– |
消息作用域: |
|
JSON |
Y |
– |
消息数据负载 |
|
N |
– |
消息附件 |
|
|
N |
– |
发送消息的设备 |
|
|
N |
– |
消息发件人(仅客户端) |
|
|
N |
– |
消息发生的群组(仅客户端) |
|
|
N |
– |
消息对话伙伴方(仅客户端) |
|
|
int |
N |
– |
消息的时间戳精度描述(仅客户端): |
Message State
消息状态描述。
状态名 |
状态码 |
状态描述 |
---|---|---|
Fault |
1 |
消息处理失败 |
Unsent |
5 |
未发送状态 |
Sending |
9 |
正在发送状态 |
Sent |
10 |
已发送状态 |
Read |
20 |
已被阅读状态 |
Recalled |
30 |
已召回 |
Deleted |
40 |
已删除 |
SendBlocked |
51 |
被阻止发送 |
ReceiveBlocked |
52 |
被阻止接收 |
Unknown |
0 |
未知状态 |
Conversation
消息会话。用于集中管理与联系人或者群组的连续消息记录。
字段 |
类型 |
必填 |
默认值 |
描述 |
---|---|---|---|---|
|
long |
Y |
– |
会话的 ID |
|
string |
Y |
– |
所属的域 |
|
long |
Y |
– |
会话的数据时间戳 |
|
long |
Y |
– |
会话所属的联系人 ID |
|
int |
Y |
– |
会话类型: |
|
int |
Y |
– |
会话状态: |
|
int |
Y |
– |
会话提醒类型: |
|
long |
Y |
– |
与会话相关的关键实体的 ID |
|
int |
Y |
– |
未读消息数量 |
|
N |
– |
会话最近一条消息,当仅有一条消息时使用该字段 |
|
|
Array< Message > |
N |
– |
会话最近的消息列表,当有多条消息时使用该字段 |
|
N |
– |
关键会话实体(仅 Hub 使用) |
|
|
string |
N |
– |
会话头像的 URL |
|
string |
N |
– |
会话头像名 |
Media Constraint
媒体的参数约束。包括视频和音频的性能约束。
字段 |
类型 |
必填 |
默认值 |
描述 |
---|---|---|---|---|
|
boolean |
Y |
– |
是否启用视频数据通道 |
|
boolean |
Y |
– |
是否启用音频数据通道 |
|
JSON |
N |
– |
视频尺寸约束。 |
Comm Field
通讯场域。通讯场域是指一个多方通讯的集中管理场所,在一个场域内进行媒体流的管理和配置,对每个参与多方通讯的终端进行数据流的分配。
字段 |
类型 |
必填 |
默认值 |
描述 |
---|---|---|---|---|
|
long |
Y |
– |
场域的 ID |
|
string |
Y |
– |
场域所属的域 |
|
long |
Y |
– |
当前数据的时间戳 |
|
string |
Y |
– |
场域的名称 |
|
JSON |
Y |
– |
场域的创建人,参看 Contact |
|
JSON |
Y |
– |
场域的创建人,参看 Media Constraint |
|
long |
Y |
– |
场域开始进行通讯的时间 |
|
long |
Y |
– |
场域结束通讯的时间 |
|
Array<JSON> |
N |
– |
参与多方通讯的各个终端节点, |
|
JSON |
N |
– |
场域关联的群组,参看 Group |
|
JSON |
N |
– |
场域的主叫联系人,参看 Contact |
|
JSON |
N |
– |
场域的被叫联系人,参看 Contact |
Comm Field Endpoint
场域内的终端节点。
字段 |
类型 |
必填 |
默认值 |
描述 |
---|---|---|---|---|
|
long |
Y |
– |
场域终端的 ID |
|
string |
Y |
– |
场域终端所属的域 |
|
long |
Y |
– |
当前数据的时间戳 |
|
Y |
– |
终端的联系人数据 |
|
|
Y |
– |
终端的设备数据 |
|
|
string |
Y |
– |
终端名称 |
|
int |
Y |
– |
状态描述: |
|
JSON |
N |
– |
会话描述数据 |
|
JSON |
N |
– |
媒体约束,参看 Media Constraint |
|
JSON |
N |
– |
视频流状态描述,JSON 结构: |
|
JSON |
N |
– |
音频流状态描述,JSON 结构: |
Signaling
通讯信令。
字段 |
类型 |
必填 |
默认值 |
描述 |
---|---|---|---|---|
|
long |
Y |
– |
信令的序号 |
|
string |
Y |
– |
信令名 |
|
JSON |
Y |
– |
信令作用的场域,参看 Comm Field |