node-nim 9.13.0 → 9.14.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/nim/talk.js +118 -2
- package/dist/nim/talk.js.map +1 -1
- package/package.json +74 -74
- package/script/download-sdk.js +78 -78
- package/script/exec-node-nim-tester.js +17 -17
- package/types/nim/talk.d.ts +20 -3
- package/types/nim_def/friend_def.d.ts +10 -11
- package/types/nim_def/talk_def.d.ts +47 -2
- package/types/nim_def/user_def.d.ts +11 -11
package/dist/nim/talk.js
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.NIMTalk = void 0;
|
|
7
7
|
const loader_1 = __importDefault(require("../loader"));
|
|
8
8
|
const eventemitter3_1 = require("eventemitter3");
|
|
9
|
+
const msglog_def_1 = require("../nim_def/msglog_def");
|
|
9
10
|
class NIMTalk extends eventemitter3_1.EventEmitter {
|
|
10
11
|
constructor() {
|
|
11
12
|
super();
|
|
@@ -21,8 +22,8 @@ class NIMTalk extends eventemitter3_1.EventEmitter {
|
|
|
21
22
|
* @param pcb 上传进度的回调函数, 如果发送的消息里包含了文件资源,则通过此回调函数通知上传进度
|
|
22
23
|
* @return void 无返回值
|
|
23
24
|
*/
|
|
24
|
-
sendMsg(msg, jsonExtension) {
|
|
25
|
-
return this.talk.SendMsg(msg, jsonExtension);
|
|
25
|
+
sendMsg(msg, jsonExtension, progressCb) {
|
|
26
|
+
return this.talk.SendMsg(msg, jsonExtension, progressCb);
|
|
26
27
|
}
|
|
27
28
|
/** 停止正在发送中的消息(目前只支持发送文件消息时的终止)
|
|
28
29
|
* @param client_msg_id 停止发送的消息客户端id
|
|
@@ -57,6 +58,121 @@ class NIMTalk extends eventemitter3_1.EventEmitter {
|
|
|
57
58
|
}, apnstext, pushpayloadconst, jsonExtension);
|
|
58
59
|
});
|
|
59
60
|
}
|
|
61
|
+
/** 创建文本消息 */
|
|
62
|
+
createTextMessage(receiver_id, session_type, client_msg_id, content, msg_setting, timetag, sub_type) {
|
|
63
|
+
return {
|
|
64
|
+
receiver_accid_: receiver_id,
|
|
65
|
+
session_type_: session_type,
|
|
66
|
+
client_msg_id_: client_msg_id,
|
|
67
|
+
content_: content,
|
|
68
|
+
msg_setting_: msg_setting,
|
|
69
|
+
timetag_: timetag,
|
|
70
|
+
sub_type_: sub_type,
|
|
71
|
+
type_: msglog_def_1.NIMMessageType.kNIMMessageTypeText
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
/** 创建文件消息 */
|
|
75
|
+
createFileMessage(receiver_id, session_type, client_msg_id, file, file_path, msg_setting, timetag, sub_type) {
|
|
76
|
+
return {
|
|
77
|
+
receiver_accid_: receiver_id,
|
|
78
|
+
session_type_: session_type,
|
|
79
|
+
client_msg_id_: client_msg_id,
|
|
80
|
+
attach_: JSON.stringify(file),
|
|
81
|
+
local_res_path_: file_path,
|
|
82
|
+
msg_setting_: msg_setting,
|
|
83
|
+
timetag_: timetag,
|
|
84
|
+
sub_type_: sub_type,
|
|
85
|
+
type_: msglog_def_1.NIMMessageType.kNIMMessageTypeFile
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
/** 创建图片消息 */
|
|
89
|
+
createImageMessage(receiver_id, session_type, client_msg_id, image, file_path, msg_setting, timetag, sub_type) {
|
|
90
|
+
return {
|
|
91
|
+
receiver_accid_: receiver_id,
|
|
92
|
+
session_type_: session_type,
|
|
93
|
+
client_msg_id_: client_msg_id,
|
|
94
|
+
attach_: JSON.stringify(image),
|
|
95
|
+
local_res_path_: file_path,
|
|
96
|
+
msg_setting_: msg_setting,
|
|
97
|
+
timetag_: timetag,
|
|
98
|
+
sub_type_: sub_type,
|
|
99
|
+
type_: msglog_def_1.NIMMessageType.kNIMMessageTypeImage
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
/** 创建语音消息 */
|
|
103
|
+
createAudioMessage(receiver_id, session_type, client_msg_id, audio, file_path, msg_setting, timetag, sub_type) {
|
|
104
|
+
return {
|
|
105
|
+
receiver_accid_: receiver_id,
|
|
106
|
+
session_type_: session_type,
|
|
107
|
+
client_msg_id_: client_msg_id,
|
|
108
|
+
attach_: JSON.stringify(audio),
|
|
109
|
+
local_res_path_: file_path,
|
|
110
|
+
msg_setting_: msg_setting,
|
|
111
|
+
timetag_: timetag,
|
|
112
|
+
sub_type_: sub_type,
|
|
113
|
+
type_: msglog_def_1.NIMMessageType.kNIMMessageTypeAudio
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/** 创建视频消息 */
|
|
117
|
+
createVideoMessage(receiver_id, session_type, client_msg_id, video, file_path, msg_setting, timetag, sub_type) {
|
|
118
|
+
return {
|
|
119
|
+
receiver_accid_: receiver_id,
|
|
120
|
+
session_type_: session_type,
|
|
121
|
+
client_msg_id_: client_msg_id,
|
|
122
|
+
attach_: JSON.stringify(video),
|
|
123
|
+
local_res_path_: file_path,
|
|
124
|
+
msg_setting_: msg_setting,
|
|
125
|
+
timetag_: timetag,
|
|
126
|
+
sub_type_: sub_type,
|
|
127
|
+
type_: msglog_def_1.NIMMessageType.kNIMMessageTypeVideo
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
/** 创建位置消息 */
|
|
131
|
+
createLocationMessage(receiver_id, session_type, client_msg_id, location, msg_setting, timetag, sub_type) {
|
|
132
|
+
return {
|
|
133
|
+
receiver_accid_: receiver_id,
|
|
134
|
+
session_type_: session_type,
|
|
135
|
+
client_msg_id_: client_msg_id,
|
|
136
|
+
attach_: JSON.stringify(location),
|
|
137
|
+
msg_setting_: msg_setting,
|
|
138
|
+
timetag_: timetag,
|
|
139
|
+
sub_type_: sub_type,
|
|
140
|
+
type_: msglog_def_1.NIMMessageType.kNIMMessageTypeLocation
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
/** 创建提醒消息 */
|
|
144
|
+
createTipMessage(receiver_id, session_type, client_msg_id, tip, msg_setting, timetag, sub_type) {
|
|
145
|
+
return {
|
|
146
|
+
receiver_accid_: receiver_id,
|
|
147
|
+
session_type_: session_type,
|
|
148
|
+
client_msg_id_: client_msg_id,
|
|
149
|
+
content_: tip,
|
|
150
|
+
msg_setting_: msg_setting,
|
|
151
|
+
timetag_: timetag,
|
|
152
|
+
sub_type_: sub_type,
|
|
153
|
+
type_: msglog_def_1.NIMMessageType.kNIMMessageTypeTips
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
/** 创建转发消息 */
|
|
157
|
+
createRetweetMessage(sourceMessage, client_msg_id, session_type, receiver_id, msg_setting, timetag) {
|
|
158
|
+
let attachStr = '';
|
|
159
|
+
if (sourceMessage.attach_) {
|
|
160
|
+
let attach = JSON.parse(sourceMessage.attach_);
|
|
161
|
+
attach['retweeted_msg_id'] = sourceMessage.client_msg_id_;
|
|
162
|
+
attachStr = JSON.stringify(attach);
|
|
163
|
+
}
|
|
164
|
+
return {
|
|
165
|
+
receiver_accid_: receiver_id,
|
|
166
|
+
session_type_: session_type,
|
|
167
|
+
client_msg_id_: client_msg_id,
|
|
168
|
+
content_: sourceMessage.content_,
|
|
169
|
+
msg_setting_: msg_setting,
|
|
170
|
+
timetag_: timetag,
|
|
171
|
+
sub_type_: sourceMessage.sub_type_,
|
|
172
|
+
type_: sourceMessage.type_,
|
|
173
|
+
attach_: attachStr
|
|
174
|
+
};
|
|
175
|
+
}
|
|
60
176
|
/** 从消息体中获取附件(图片、语音、视频等)的本地路径
|
|
61
177
|
* @param msg 消息
|
|
62
178
|
* @return string 消息如果有附件,不管是否已下载,返回附件的本地路径;消息如果没有附件,返回空字符串。
|
package/dist/nim/talk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"talk.js","sourceRoot":"","sources":["../../ts/nim/talk.ts"],"names":[],"mappings":";;;;;;AAAA,uDAA2B;AAC3B,iDAA4C;
|
|
1
|
+
{"version":3,"file":"talk.js","sourceRoot":"","sources":["../../ts/nim/talk.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,74 +1,74 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "node-nim",
|
|
3
|
-
"version": "9.
|
|
4
|
-
"description": "NetEase IM nodejs wrapper based on NetEase IM C++ SDK",
|
|
5
|
-
"main": "dist/node-nim.js",
|
|
6
|
-
"bin": {
|
|
7
|
-
"node-nim-tester": "node-nim-tester.js"
|
|
8
|
-
},
|
|
9
|
-
"types": "types/node-nim.d.ts",
|
|
10
|
-
"author": "Netease",
|
|
11
|
-
"license": "ISC",
|
|
12
|
-
"homepage": "https://github.com/netease-im/node-nim",
|
|
13
|
-
"repository": {
|
|
14
|
-
"type": "git",
|
|
15
|
-
"url": "git://github.com/netease-im/node-nim.git"
|
|
16
|
-
},
|
|
17
|
-
"scripts": {
|
|
18
|
-
"coverage": "nyc mocha test/test_all.js -slow 200 -timeout 10000",
|
|
19
|
-
"build_ts": "rimraf ./dist && rimraf ./types && tsc",
|
|
20
|
-
"build_wiki_doc": "typedoc --plugin typedoc-plugin-markdown --plugin typedoc-github-wiki-theme --theme github-wiki --out wiki_doc",
|
|
21
|
-
"build_markdown_doc": "typedoc --plugin typedoc-plugin-markdown --theme markdown --out markdown_doc",
|
|
22
|
-
"prepublishOnly": "npm run build_ts",
|
|
23
|
-
"install": "npm run download_sdk",
|
|
24
|
-
"download_sdk": "node -e \"require('./script/download-sdk.js').downloadSDK()\"",
|
|
25
|
-
"publish_to_netease_npm": "node script/publish-to-netease-npm.js"
|
|
26
|
-
},
|
|
27
|
-
"nyc": {
|
|
28
|
-
"cache": false,
|
|
29
|
-
"reporter": [
|
|
30
|
-
"lcov"
|
|
31
|
-
]
|
|
32
|
-
},
|
|
33
|
-
"dependencies": {
|
|
34
|
-
"compare-versions": "^4.1.4",
|
|
35
|
-
"download": "^8.0.0",
|
|
36
|
-
"eventemitter3": "^4.0.7",
|
|
37
|
-
"node-fetch": "^2.6.9"
|
|
38
|
-
},
|
|
39
|
-
"optionalDependencies": {
|
|
40
|
-
"commander": "^8.3.0",
|
|
41
|
-
"hawk-web": "latest"
|
|
42
|
-
},
|
|
43
|
-
"devDependencies": {
|
|
44
|
-
"@types/node": "^16.18.23",
|
|
45
|
-
"@typescript-eslint/eslint-plugin": "^5.58.0",
|
|
46
|
-
"@typescript-eslint/parser": "^5.58.0",
|
|
47
|
-
"bluebird": "^3.7.2",
|
|
48
|
-
"cmake-js": "^6.3.2",
|
|
49
|
-
"eslint": "^7.32.0",
|
|
50
|
-
"git-describe": "^4.1.1",
|
|
51
|
-
"mocha": "^9.2.2",
|
|
52
|
-
"node-addon-api": "^4.3.0",
|
|
53
|
-
"nyc": "^15.1.0",
|
|
54
|
-
"typedoc": "^0.24.1",
|
|
55
|
-
"typedoc-github-wiki-theme": "^1.1.0",
|
|
56
|
-
"typedoc-plugin-markdown": "^3.15.1",
|
|
57
|
-
"typescript": "^4.9.5"
|
|
58
|
-
},
|
|
59
|
-
"keywords": [
|
|
60
|
-
"netease",
|
|
61
|
-
"nim",
|
|
62
|
-
"im sdk",
|
|
63
|
-
"nim sdk",
|
|
64
|
-
"nim node",
|
|
65
|
-
"nim electron"
|
|
66
|
-
],
|
|
67
|
-
"files": [
|
|
68
|
-
"dist/",
|
|
69
|
-
"types/",
|
|
70
|
-
"package.json",
|
|
71
|
-
"script/",
|
|
72
|
-
"node-nim-tester.js"
|
|
73
|
-
]
|
|
74
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "node-nim",
|
|
3
|
+
"version": "9.14.2",
|
|
4
|
+
"description": "NetEase IM nodejs wrapper based on NetEase IM C++ SDK",
|
|
5
|
+
"main": "dist/node-nim.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"node-nim-tester": "node-nim-tester.js"
|
|
8
|
+
},
|
|
9
|
+
"types": "types/node-nim.d.ts",
|
|
10
|
+
"author": "Netease",
|
|
11
|
+
"license": "ISC",
|
|
12
|
+
"homepage": "https://github.com/netease-im/node-nim",
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "git://github.com/netease-im/node-nim.git"
|
|
16
|
+
},
|
|
17
|
+
"scripts": {
|
|
18
|
+
"coverage": "nyc mocha test/test_all.js -slow 200 -timeout 10000",
|
|
19
|
+
"build_ts": "rimraf ./dist && rimraf ./types && tsc",
|
|
20
|
+
"build_wiki_doc": "typedoc --plugin typedoc-plugin-markdown --plugin typedoc-github-wiki-theme --theme github-wiki --out wiki_doc",
|
|
21
|
+
"build_markdown_doc": "typedoc --plugin typedoc-plugin-markdown --theme markdown --out markdown_doc",
|
|
22
|
+
"prepublishOnly": "npm run build_ts",
|
|
23
|
+
"install": "npm run download_sdk",
|
|
24
|
+
"download_sdk": "node -e \"require('./script/download-sdk.js').downloadSDK()\"",
|
|
25
|
+
"publish_to_netease_npm": "node script/publish-to-netease-npm.js"
|
|
26
|
+
},
|
|
27
|
+
"nyc": {
|
|
28
|
+
"cache": false,
|
|
29
|
+
"reporter": [
|
|
30
|
+
"lcov"
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"compare-versions": "^4.1.4",
|
|
35
|
+
"download": "^8.0.0",
|
|
36
|
+
"eventemitter3": "^4.0.7",
|
|
37
|
+
"node-fetch": "^2.6.9"
|
|
38
|
+
},
|
|
39
|
+
"optionalDependencies": {
|
|
40
|
+
"commander": "^8.3.0",
|
|
41
|
+
"hawk-web": "latest"
|
|
42
|
+
},
|
|
43
|
+
"devDependencies": {
|
|
44
|
+
"@types/node": "^16.18.23",
|
|
45
|
+
"@typescript-eslint/eslint-plugin": "^5.58.0",
|
|
46
|
+
"@typescript-eslint/parser": "^5.58.0",
|
|
47
|
+
"bluebird": "^3.7.2",
|
|
48
|
+
"cmake-js": "^6.3.2",
|
|
49
|
+
"eslint": "^7.32.0",
|
|
50
|
+
"git-describe": "^4.1.1",
|
|
51
|
+
"mocha": "^9.2.2",
|
|
52
|
+
"node-addon-api": "^4.3.0",
|
|
53
|
+
"nyc": "^15.1.0",
|
|
54
|
+
"typedoc": "^0.24.1",
|
|
55
|
+
"typedoc-github-wiki-theme": "^1.1.0",
|
|
56
|
+
"typedoc-plugin-markdown": "^3.15.1",
|
|
57
|
+
"typescript": "^4.9.5"
|
|
58
|
+
},
|
|
59
|
+
"keywords": [
|
|
60
|
+
"netease",
|
|
61
|
+
"nim",
|
|
62
|
+
"im sdk",
|
|
63
|
+
"nim sdk",
|
|
64
|
+
"nim node",
|
|
65
|
+
"nim electron"
|
|
66
|
+
],
|
|
67
|
+
"files": [
|
|
68
|
+
"dist/",
|
|
69
|
+
"types/",
|
|
70
|
+
"package.json",
|
|
71
|
+
"script/",
|
|
72
|
+
"node-nim-tester.js"
|
|
73
|
+
]
|
|
74
|
+
}
|
package/script/download-sdk.js
CHANGED
|
@@ -1,78 +1,78 @@
|
|
|
1
|
-
const fetch = require('node-fetch')
|
|
2
|
-
const fs = require('fs')
|
|
3
|
-
const compareVersions = require('compare-versions')
|
|
4
|
-
const download = require('download')
|
|
5
|
-
const arch = process.env.npm_config_arch || process.arch
|
|
6
|
-
const platform = process.env.npm_config_platform || process.platform
|
|
7
|
-
const sdk_group = 'message'
|
|
8
|
-
const sdk_name = 'nim'
|
|
9
|
-
const sdk_path = `${__dirname}/../sdk`
|
|
10
|
-
if (process.env.npm_config_ignoredownloadsdk) {
|
|
11
|
-
console.log('ignore download sdk')
|
|
12
|
-
process.exit(0)
|
|
13
|
-
}
|
|
14
|
-
let sdk_version
|
|
15
|
-
let sdk_url = process.env.npm_config_nimsdkurl
|
|
16
|
-
if (process.env.npm_package_version) {
|
|
17
|
-
sdk_version = process.env.npm_package_version.split('-')[0]
|
|
18
|
-
}
|
|
19
|
-
if (process.env.npm_config_nimsdkversion) {
|
|
20
|
-
sdk_version = process.env.npm_config_nimsdkversion
|
|
21
|
-
}
|
|
22
|
-
async function downloadSDK(custom_sdk_url) {
|
|
23
|
-
if (custom_sdk_url) {
|
|
24
|
-
sdk_url = custom_sdk_url
|
|
25
|
-
}
|
|
26
|
-
// fetch publish list
|
|
27
|
-
const res = await fetch('https://admin.netease.im/public-service/free/publish/list')
|
|
28
|
-
const publish_json = await res.json()
|
|
29
|
-
// get sdk list
|
|
30
|
-
if (!sdk_url) {
|
|
31
|
-
let latest_version = '0.0.0'
|
|
32
|
-
let latest_sdk_url = ''
|
|
33
|
-
Object.keys(publish_json.data[sdk_group]).forEach((temp) => {
|
|
34
|
-
if (compareVersions.compare(latest_version, temp, '<')) {
|
|
35
|
-
publish_json.data[sdk_group][temp].forEach((member) => {
|
|
36
|
-
if (member.filename.includes(sdk_name) && member.filename.includes(platform) && member.filename.includes(arch)) {
|
|
37
|
-
latest_version = temp
|
|
38
|
-
latest_sdk_url = member.cdnlink
|
|
39
|
-
}
|
|
40
|
-
})
|
|
41
|
-
}
|
|
42
|
-
if (sdk_version === temp) {
|
|
43
|
-
publish_json.data[sdk_group][temp].forEach((member) => {
|
|
44
|
-
if (member.filename.includes(sdk_name) && member.filename.includes(platform) && member.filename.includes(arch)) {
|
|
45
|
-
sdk_url = member.cdnlink
|
|
46
|
-
}
|
|
47
|
-
})
|
|
48
|
-
}
|
|
49
|
-
})
|
|
50
|
-
if (!sdk_url || sdk_url.length === 0) {
|
|
51
|
-
console.log(`${sdk_name} sdk version ${sdk_version} not found, use latest version ${latest_version}`)
|
|
52
|
-
sdk_url = latest_sdk_url
|
|
53
|
-
}
|
|
54
|
-
console.log(`[node-nim] downloadSDK sdk_name:${sdk_name}, platform:${platform}, arch:${arch}`)
|
|
55
|
-
}
|
|
56
|
-
if (!sdk_url) {
|
|
57
|
-
console.error(`[node-nim] downloadSDK sdk_name:${sdk_name}, platform:${platform}, arch:${arch} not found`)
|
|
58
|
-
return
|
|
59
|
-
}
|
|
60
|
-
console.info(`[node-nim] Downloading prebuilt sdk from ${sdk_url} to ${sdk_path}`)
|
|
61
|
-
// remove sdk_path
|
|
62
|
-
if (fs.existsSync(sdk_path)) {
|
|
63
|
-
fs.rmSync(sdk_path, { recursive: true, force: true })
|
|
64
|
-
}
|
|
65
|
-
// download sdk
|
|
66
|
-
try {
|
|
67
|
-
await download(sdk_url, sdk_path, {
|
|
68
|
-
extract: true,
|
|
69
|
-
filter: (file) => {
|
|
70
|
-
return !file.path.includes('._')
|
|
71
|
-
}
|
|
72
|
-
})
|
|
73
|
-
console.info(`[node-nim] Downloading prebuilt sdk complete`)
|
|
74
|
-
} catch (err) {
|
|
75
|
-
console.error(`[node-nim] downloadSDK error:${err}`)
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
exports.downloadSDK = downloadSDK
|
|
1
|
+
const fetch = require('node-fetch')
|
|
2
|
+
const fs = require('fs')
|
|
3
|
+
const compareVersions = require('compare-versions')
|
|
4
|
+
const download = require('download')
|
|
5
|
+
const arch = process.env.npm_config_arch || process.arch
|
|
6
|
+
const platform = process.env.npm_config_platform || process.platform
|
|
7
|
+
const sdk_group = 'message'
|
|
8
|
+
const sdk_name = 'nim'
|
|
9
|
+
const sdk_path = `${__dirname}/../sdk`
|
|
10
|
+
if (process.env.npm_config_ignoredownloadsdk) {
|
|
11
|
+
console.log('ignore download sdk')
|
|
12
|
+
process.exit(0)
|
|
13
|
+
}
|
|
14
|
+
let sdk_version
|
|
15
|
+
let sdk_url = process.env.npm_config_nimsdkurl
|
|
16
|
+
if (process.env.npm_package_version) {
|
|
17
|
+
sdk_version = process.env.npm_package_version.split('-')[0]
|
|
18
|
+
}
|
|
19
|
+
if (process.env.npm_config_nimsdkversion) {
|
|
20
|
+
sdk_version = process.env.npm_config_nimsdkversion
|
|
21
|
+
}
|
|
22
|
+
async function downloadSDK(custom_sdk_url) {
|
|
23
|
+
if (custom_sdk_url) {
|
|
24
|
+
sdk_url = custom_sdk_url
|
|
25
|
+
}
|
|
26
|
+
// fetch publish list
|
|
27
|
+
const res = await fetch('https://admin.netease.im/public-service/free/publish/list')
|
|
28
|
+
const publish_json = await res.json()
|
|
29
|
+
// get sdk list
|
|
30
|
+
if (!sdk_url) {
|
|
31
|
+
let latest_version = '0.0.0'
|
|
32
|
+
let latest_sdk_url = ''
|
|
33
|
+
Object.keys(publish_json.data[sdk_group]).forEach((temp) => {
|
|
34
|
+
if (compareVersions.compare(latest_version, temp, '<')) {
|
|
35
|
+
publish_json.data[sdk_group][temp].forEach((member) => {
|
|
36
|
+
if (member.filename.includes(sdk_name) && member.filename.includes(platform) && member.filename.includes(arch)) {
|
|
37
|
+
latest_version = temp
|
|
38
|
+
latest_sdk_url = member.cdnlink
|
|
39
|
+
}
|
|
40
|
+
})
|
|
41
|
+
}
|
|
42
|
+
if (sdk_version === temp) {
|
|
43
|
+
publish_json.data[sdk_group][temp].forEach((member) => {
|
|
44
|
+
if (member.filename.includes(sdk_name) && member.filename.includes(platform) && member.filename.includes(arch)) {
|
|
45
|
+
sdk_url = member.cdnlink
|
|
46
|
+
}
|
|
47
|
+
})
|
|
48
|
+
}
|
|
49
|
+
})
|
|
50
|
+
if (!sdk_url || sdk_url.length === 0) {
|
|
51
|
+
console.log(`${sdk_name} sdk version ${sdk_version} not found, use latest version ${latest_version}`)
|
|
52
|
+
sdk_url = latest_sdk_url
|
|
53
|
+
}
|
|
54
|
+
console.log(`[node-nim] downloadSDK sdk_name:${sdk_name}, platform:${platform}, arch:${arch}`)
|
|
55
|
+
}
|
|
56
|
+
if (!sdk_url) {
|
|
57
|
+
console.error(`[node-nim] downloadSDK sdk_name:${sdk_name}, platform:${platform}, arch:${arch} not found`)
|
|
58
|
+
return
|
|
59
|
+
}
|
|
60
|
+
console.info(`[node-nim] Downloading prebuilt sdk from ${sdk_url} to ${sdk_path}`)
|
|
61
|
+
// remove sdk_path
|
|
62
|
+
if (fs.existsSync(sdk_path)) {
|
|
63
|
+
fs.rmSync(sdk_path, { recursive: true, force: true })
|
|
64
|
+
}
|
|
65
|
+
// download sdk
|
|
66
|
+
try {
|
|
67
|
+
await download(sdk_url, sdk_path, {
|
|
68
|
+
extract: true,
|
|
69
|
+
filter: (file) => {
|
|
70
|
+
return !file.path.includes('._')
|
|
71
|
+
}
|
|
72
|
+
})
|
|
73
|
+
console.info(`[node-nim] Downloading prebuilt sdk complete`)
|
|
74
|
+
} catch (err) {
|
|
75
|
+
console.error(`[node-nim] downloadSDK error:${err}`)
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
exports.downloadSDK = downloadSDK
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
const child_process = require('child_process')
|
|
2
|
-
const fs = require('fs')
|
|
3
|
-
const testDir = 'node-nim-tester'
|
|
4
|
-
if (!fs.existsSync(testDir)) {
|
|
5
|
-
fs.mkdirSync(testDir)
|
|
6
|
-
}
|
|
7
|
-
process.chdir(testDir)
|
|
8
|
-
child_process.execSync(`npm init --force`, { stdio: 'inherit' })
|
|
9
|
-
child_process.execSync(`npm install node-nim@latest --registry=http://npm.netease.im/`, { stdio: 'inherit' })
|
|
10
|
-
const args = process.argv.slice(2).join(' ')
|
|
11
|
-
if (process.platform === 'win32') {
|
|
12
|
-
child_process.execSync(`.\\node_modules\\.bin\\node-nim-tester.cmd run ${args}`, { stdio: 'inherit' })
|
|
13
|
-
} else {
|
|
14
|
-
child_process.execSync(`./node_modules/.bin/node-nim-tester run ${args}`, { stdio: 'inherit' })
|
|
15
|
-
}
|
|
16
|
-
process.chdir('..')
|
|
17
|
-
fs.rmSync(testDir, { recursive: true, force: true })
|
|
1
|
+
const child_process = require('child_process')
|
|
2
|
+
const fs = require('fs')
|
|
3
|
+
const testDir = 'node-nim-tester'
|
|
4
|
+
if (!fs.existsSync(testDir)) {
|
|
5
|
+
fs.mkdirSync(testDir)
|
|
6
|
+
}
|
|
7
|
+
process.chdir(testDir)
|
|
8
|
+
child_process.execSync(`npm init --force`, { stdio: 'inherit' })
|
|
9
|
+
child_process.execSync(`npm install node-nim@latest --registry=http://npm.netease.im/`, { stdio: 'inherit' })
|
|
10
|
+
const args = process.argv.slice(2).join(' ')
|
|
11
|
+
if (process.platform === 'win32') {
|
|
12
|
+
child_process.execSync(`.\\node_modules\\.bin\\node-nim-tester.cmd run ${args}`, { stdio: 'inherit' })
|
|
13
|
+
} else {
|
|
14
|
+
child_process.execSync(`./node_modules/.bin/node-nim-tester run ${args}`, { stdio: 'inherit' })
|
|
15
|
+
}
|
|
16
|
+
process.chdir('..')
|
|
17
|
+
fs.rmSync(testDir, { recursive: true, force: true })
|
package/types/nim/talk.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { EventEmitter } from 'eventemitter3';
|
|
2
|
-
import { IMMessage, NIMMessageType } from '../nim_def/msglog_def';
|
|
3
|
-
import { BroadcastMessage, MessageFilterCallback, NIMTalkAPI, RecallMsgNotify, RecallMsgsCallback, SendMessageArc, TeamNotificationFilterCallback } from '../nim_def/talk_def';
|
|
2
|
+
import { IMMessage, MessageSetting, NIMMessageType } from '../nim_def/msglog_def';
|
|
3
|
+
import { BroadcastMessage, FileUpPrgCallback, IMAudio, IMFile, IMImage, IMLocation, IMVideo, MessageFilterCallback, NIMTalkAPI, RecallMsgNotify, RecallMsgsCallback, SendMessageArc, TeamNotificationFilterCallback } from '../nim_def/talk_def';
|
|
4
4
|
import { NIMResCode } from '../nim_def/client_def';
|
|
5
|
+
import { NIMSessionType } from 'ts/node-nim';
|
|
5
6
|
export declare interface NIMTalkEvents {
|
|
6
7
|
/** 发送消息回调 */
|
|
7
8
|
sendMsg: [SendMessageArc];
|
|
@@ -27,7 +28,7 @@ export declare class NIMTalk extends EventEmitter<NIMTalkEvents> {
|
|
|
27
28
|
* @param pcb 上传进度的回调函数, 如果发送的消息里包含了文件资源,则通过此回调函数通知上传进度
|
|
28
29
|
* @return void 无返回值
|
|
29
30
|
*/
|
|
30
|
-
sendMsg(msg: IMMessage, jsonExtension: string): void;
|
|
31
|
+
sendMsg(msg: IMMessage, jsonExtension: string, progressCb: FileUpPrgCallback): void;
|
|
31
32
|
/** 停止正在发送中的消息(目前只支持发送文件消息时的终止)
|
|
32
33
|
* @param client_msg_id 停止发送的消息客户端id
|
|
33
34
|
* @param type 停止发送的消息类型
|
|
@@ -50,6 +51,22 @@ export declare class NIMTalk extends EventEmitter<NIMTalkEvents> {
|
|
|
50
51
|
* </pre>
|
|
51
52
|
*/
|
|
52
53
|
recallMsg(msg: IMMessage, notify_msg: string, cb: RecallMsgsCallback | null, apnstext: string, pushpayloadconst: string, jsonExtension: string): Promise<[NIMResCode, Array<RecallMsgNotify>]>;
|
|
54
|
+
/** 创建文本消息 */
|
|
55
|
+
createTextMessage(receiver_id: string, session_type: NIMSessionType, client_msg_id: string, content: string, msg_setting: MessageSetting, timetag: number, sub_type: number): IMMessage;
|
|
56
|
+
/** 创建文件消息 */
|
|
57
|
+
createFileMessage(receiver_id: string, session_type: NIMSessionType, client_msg_id: string, file: IMFile, file_path: string, msg_setting: MessageSetting, timetag: number, sub_type: number): IMMessage;
|
|
58
|
+
/** 创建图片消息 */
|
|
59
|
+
createImageMessage(receiver_id: string, session_type: NIMSessionType, client_msg_id: string, image: IMImage, file_path: string, msg_setting: MessageSetting, timetag: number, sub_type: number): IMMessage;
|
|
60
|
+
/** 创建语音消息 */
|
|
61
|
+
createAudioMessage(receiver_id: string, session_type: NIMSessionType, client_msg_id: string, audio: IMAudio, file_path: string, msg_setting: MessageSetting, timetag: number, sub_type: number): IMMessage;
|
|
62
|
+
/** 创建视频消息 */
|
|
63
|
+
createVideoMessage(receiver_id: string, session_type: NIMSessionType, client_msg_id: string, video: IMVideo, file_path: string, msg_setting: MessageSetting, timetag: number, sub_type: number): IMMessage;
|
|
64
|
+
/** 创建位置消息 */
|
|
65
|
+
createLocationMessage(receiver_id: string, session_type: NIMSessionType, client_msg_id: string, location: IMLocation, msg_setting: MessageSetting, timetag: number, sub_type: number): IMMessage;
|
|
66
|
+
/** 创建提醒消息 */
|
|
67
|
+
createTipMessage(receiver_id: string, session_type: NIMSessionType, client_msg_id: string, tip: string, msg_setting: MessageSetting, timetag: number, sub_type: number): IMMessage;
|
|
68
|
+
/** 创建转发消息 */
|
|
69
|
+
createRetweetMessage(sourceMessage: IMMessage, client_msg_id: string, session_type: NIMSessionType, receiver_id: string, msg_setting: MessageSetting, timetag: number): IMMessage;
|
|
53
70
|
/** 从消息体中获取附件(图片、语音、视频等)的本地路径
|
|
54
71
|
* @param msg 消息
|
|
55
72
|
* @return string 消息如果有附件,不管是否已下载,返回附件的本地路径;消息如果没有附件,返回空字符串。
|
|
@@ -34,17 +34,16 @@ export interface DeleteFriendOption {
|
|
|
34
34
|
}
|
|
35
35
|
/** @brief 云信好友 */
|
|
36
36
|
export interface FriendProfile {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
update_timetag_?: number; /** < 好友更新时间戳(毫秒) */
|
|
37
|
+
accid?: string; /** < 用户账号 */
|
|
38
|
+
flag?: NIMFriendFlag; /** < 主动的好友关系 */
|
|
39
|
+
beflag?: NIMFriendFlag; /** < 被动的好友关系 */
|
|
40
|
+
source?: NIMFriendSource; /** < 好友来源 */
|
|
41
|
+
alias?: string; /** < 好友别名 */
|
|
42
|
+
bits?: number; /** < 扩展数据 */
|
|
43
|
+
ex?: string; /** < 扩展数据 */
|
|
44
|
+
server_ex?: string; /** < 扩展数据 */
|
|
45
|
+
create_timetag?: number; /** < 好友创建时间戳(毫秒) */
|
|
46
|
+
update_timetag?: number; /** < 好友更新时间戳(毫秒) */
|
|
48
47
|
}
|
|
49
48
|
/** @brief 云信好友变更事件 */
|
|
50
49
|
export interface FriendChangeEvent {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { NIMResCode } from './client_def';
|
|
2
|
-
import { IMMessage, NIMMessageFeature, NIMMessageType } from './msglog_def';
|
|
2
|
+
import { IMMessage, NIMMessageFeature, NIMMessageType, MessageSetting } from './msglog_def';
|
|
3
3
|
import { NIMSessionType } from './session_def';
|
|
4
4
|
export interface SendMessageArc {
|
|
5
5
|
talk_id_?: string; /**< 会话ID */
|
|
@@ -31,6 +31,50 @@ export interface RecallMsgNotify {
|
|
|
31
31
|
attach_?: string; /**< v8.2.0 透传的附件信息 */
|
|
32
32
|
callback_ext_?: string; /**< v8.2.0 第三方回调返回的字定义字段 */
|
|
33
33
|
}
|
|
34
|
+
export interface IMFile {
|
|
35
|
+
md5_?: string;
|
|
36
|
+
size_?: number;
|
|
37
|
+
url_?: string;
|
|
38
|
+
display_name_?: string;
|
|
39
|
+
file_extension_?: string;
|
|
40
|
+
msg_attachment_tag_?: string;
|
|
41
|
+
}
|
|
42
|
+
export interface IMImage {
|
|
43
|
+
md5?: string;
|
|
44
|
+
size?: number;
|
|
45
|
+
url_?: string;
|
|
46
|
+
name?: string;
|
|
47
|
+
ext?: string;
|
|
48
|
+
upload_tag?: string;
|
|
49
|
+
w?: number;
|
|
50
|
+
h?: number;
|
|
51
|
+
}
|
|
52
|
+
export interface IMAudio {
|
|
53
|
+
md5?: string;
|
|
54
|
+
size?: number;
|
|
55
|
+
url_?: string;
|
|
56
|
+
name?: string;
|
|
57
|
+
ext?: string;
|
|
58
|
+
upload_tag?: string;
|
|
59
|
+
dur?: number;
|
|
60
|
+
}
|
|
61
|
+
export interface IMVideo {
|
|
62
|
+
md5?: string;
|
|
63
|
+
size?: number;
|
|
64
|
+
url_?: string;
|
|
65
|
+
name?: string;
|
|
66
|
+
ext?: string;
|
|
67
|
+
upload_tag?: string;
|
|
68
|
+
w?: number;
|
|
69
|
+
h?: number;
|
|
70
|
+
dur?: number;
|
|
71
|
+
}
|
|
72
|
+
export interface IMLocation {
|
|
73
|
+
title?: string;
|
|
74
|
+
lat?: number;
|
|
75
|
+
lng?: number;
|
|
76
|
+
}
|
|
77
|
+
export type FileUpPrgCallback = (uplaodedSize: number, totalSize: number) => void;
|
|
34
78
|
export type SendMsgAckCallback = (result: SendMessageArc) => void;
|
|
35
79
|
export type ReceiveMsgCallback = (result: IMMessage) => void;
|
|
36
80
|
export type ReceiveMsgsCallback = (result: Array<IMMessage>) => void;
|
|
@@ -41,11 +85,12 @@ export type TeamNotificationFilterCallback = (result: IMMessage) => boolean;
|
|
|
41
85
|
export type MessageFilterCallback = (result: IMMessage) => boolean;
|
|
42
86
|
export interface NIMTalkAPI {
|
|
43
87
|
InitEventHandlers(): void;
|
|
44
|
-
SendMsg(msg: IMMessage, jsonExtension: string): void;
|
|
88
|
+
SendMsg(msg: IMMessage, jsonExtension: string, progressCb: FileUpPrgCallback): void;
|
|
45
89
|
StopSendMsg(clientMsgId: string, type: NIMMessageType, jsonExtension: string): void;
|
|
46
90
|
RecallMsg(msg: IMMessage, notify_msg: string, cb: RecallMsgsCallback | null, apnstext: string, pushpayloadconst: string, jsonExtension: string): void;
|
|
47
91
|
GetAttachmentPathFromMsg(msg: IMMessage): string;
|
|
48
92
|
ReplyMessage(msg: IMMessage, json_reply_msg: string): void;
|
|
49
93
|
RegMessageFilter(cb: MessageFilterCallback | null, jsonExtension: string): void;
|
|
50
94
|
RegTeamNotificationFilter(cb: TeamNotificationFilterCallback | null, jsonExtension: string): void;
|
|
95
|
+
CreateTextMessage(receiver_id: string, session_type: NIMSessionType, client_msg_id: string, content: string, msg_setting: MessageSetting, timetag: number, sub_type: number): string;
|
|
51
96
|
}
|
|
@@ -23,17 +23,17 @@ export interface BlackMuteListInfo {
|
|
|
23
23
|
update_timetag_?: number; /**< 档案更新时间(毫秒) */
|
|
24
24
|
}
|
|
25
25
|
export interface UserNameCard {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
26
|
+
accid?: string; /**< 用户ID */
|
|
27
|
+
name?: string; /**< 用户昵称 */
|
|
28
|
+
icon?: string; /**< 用户头像下载地址 */
|
|
29
|
+
sign?: string; /**< 用户签名 */
|
|
30
|
+
gender?: number; /**< 用户性别 */
|
|
31
|
+
email?: string; /**< 用户邮箱 */
|
|
32
|
+
birth?: string; /**< 用户生日 */
|
|
33
|
+
mobile?: string; /**< 用户电话 */
|
|
34
|
+
ex?: string; /**< 用户扩展数据 */
|
|
35
|
+
create_timetag?: number; /**< 用户档案创建时间戳(毫秒) */
|
|
36
|
+
update_timetag?: number; /**< 用户档案更新时间戳(毫秒) */
|
|
37
37
|
}
|
|
38
38
|
export interface SpecialRelationshipChangeEvent {
|
|
39
39
|
type_?: NIMUserSpecialRelationshipChangeType; /**< 黑名单/静音名单更新事件类型 */
|