node-nim 7.8.13-rc.3 → 7.8.13-rc.5
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/just-task.js +14 -9
- package/package.json +3 -2
- package/src/api/nim_node_client.cpp +282 -0
- package/src/api/nim_node_client.h +52 -0
- package/src/api/nim_node_client_event_handler.cpp +269 -0
- package/src/api/nim_node_client_event_handler.h +63 -0
- package/src/api/nim_node_data_event_handler.cpp +28 -0
- package/src/api/nim_node_data_event_handler.h +29 -0
- package/src/api/nim_node_data_sync.cpp +59 -0
- package/src/api/nim_node_data_sync.h +31 -0
- package/src/api/nim_node_friend.cpp +141 -0
- package/src/api/nim_node_friend.h +39 -0
- package/src/api/nim_node_friend_event_handler.cpp +75 -0
- package/src/api/nim_node_friend_event_handler.h +35 -0
- package/src/api/nim_node_global.cpp +144 -0
- package/src/api/nim_node_global.h +37 -0
- package/src/api/nim_node_global_event_handler.cpp +101 -0
- package/src/api/nim_node_global_event_handler.h +38 -0
- package/src/api/nim_node_msglog.cpp +1126 -0
- package/src/api/nim_node_msglog.h +60 -0
- package/src/api/nim_node_msglog_event_handler.cpp +277 -0
- package/src/api/nim_node_msglog_event_handler.h +103 -0
- package/src/api/nim_node_nos.cpp +194 -0
- package/src/api/nim_node_nos.h +44 -0
- package/src/api/nim_node_nos_event_handler.cpp +172 -0
- package/src/api/nim_node_nos_event_handler.h +45 -0
- package/src/api/nim_node_online_session.cpp +116 -0
- package/src/api/nim_node_online_session.h +37 -0
- package/src/api/nim_node_online_session_event_handler.cpp +92 -0
- package/src/api/nim_node_online_session_event_handler.h +39 -0
- package/src/api/nim_node_pass_service_event_handler.cpp +56 -0
- package/src/api/nim_node_pass_service_event_handler.h +33 -0
- package/src/api/nim_node_pass_through_proxy.cpp +70 -0
- package/src/api/nim_node_pass_through_proxy.h +33 -0
- package/src/api/nim_node_plugin.cpp +78 -0
- package/src/api/nim_node_plugin.h +59 -0
- package/src/api/nim_node_session.cpp +598 -0
- package/src/api/nim_node_session.h +53 -0
- package/src/api/nim_node_session_event_handler.cpp +278 -0
- package/src/api/nim_node_session_event_handler.h +70 -0
- package/src/api/nim_node_signaling.cpp +243 -0
- package/src/api/nim_node_signaling.h +45 -0
- package/src/api/nim_node_signaling_event_handler.cpp +245 -0
- package/src/api/nim_node_signaling_event_handler.h +41 -0
- package/src/api/nim_node_subscribe_event.cpp +164 -0
- package/src/api/nim_node_subscribe_event.h +40 -0
- package/src/api/nim_node_subscribe_event_handler.cpp +118 -0
- package/src/api/nim_node_subscribe_event_handler.h +43 -0
- package/src/api/nim_node_super_team.cpp +760 -0
- package/src/api/nim_node_super_team.h +56 -0
- package/src/api/nim_node_super_team_event_handler.cpp +243 -0
- package/src/api/nim_node_super_team_event_handler.h +99 -0
- package/src/api/nim_node_sysmsg.cpp +190 -0
- package/src/api/nim_node_sysmsg.h +44 -0
- package/src/api/nim_node_sysmsg_event_handler.cpp +102 -0
- package/src/api/nim_node_sysmsg_event_handler.h +38 -0
- package/src/api/nim_node_talk.cpp +343 -0
- package/src/api/nim_node_talk.h +42 -0
- package/src/api/nim_node_talk_event_handler.cpp +160 -0
- package/src/api/nim_node_talk_event_handler.h +43 -0
- package/src/api/nim_node_talk_ex.cpp +252 -0
- package/src/api/nim_node_talk_ex.h +68 -0
- package/src/api/nim_node_talk_ex_event_handler.cpp +319 -0
- package/src/api/nim_node_talk_ex_event_handler.h +184 -0
- package/src/api/nim_node_team.cpp +955 -0
- package/src/api/nim_node_team.h +64 -0
- package/src/api/nim_node_team_event_handler.cpp +248 -0
- package/src/api/nim_node_team_event_handler.h +86 -0
- package/src/api/nim_node_tool.cpp +129 -0
- package/src/api/nim_node_tool.h +40 -0
- package/src/api/nim_node_tool_event_handler.cpp +45 -0
- package/src/api/nim_node_tool_event_handler.h +32 -0
- package/src/api/nim_node_user.cpp +194 -0
- package/src/api/nim_node_user.h +44 -0
- package/src/api/nim_node_user_event_handler.cpp +126 -0
- package/src/api/nim_node_user_event_handler.h +42 -0
- package/src/helper/nim_node_client_helper.cpp +336 -0
- package/src/helper/nim_node_client_helper.h +32 -0
- package/src/helper/nim_node_friend_helper.cpp +181 -0
- package/src/helper/nim_node_friend_helper.h +30 -0
- package/src/helper/nim_node_global_helper.cpp +25 -0
- package/src/helper/nim_node_global_helper.h +26 -0
- package/src/helper/nim_node_msglog_helper.cpp +218 -0
- package/src/helper/nim_node_msglog_helper.h +38 -0
- package/src/helper/nim_node_nos_helper.cpp +106 -0
- package/src/helper/nim_node_nos_helper.h +33 -0
- package/src/helper/nim_node_online_session_helper.cpp +57 -0
- package/src/helper/nim_node_online_session_helper.h +28 -0
- package/src/helper/nim_node_session_helper.cpp +129 -0
- package/src/helper/nim_node_session_helper.h +40 -0
- package/src/helper/nim_node_signaling_helper.cpp +164 -0
- package/src/helper/nim_node_signaling_helper.h +48 -0
- package/src/helper/nim_node_subscribe_helper.cpp +174 -0
- package/src/helper/nim_node_subscribe_helper.h +67 -0
- package/src/helper/nim_node_super_team_helper.cpp +338 -0
- package/src/helper/nim_node_super_team_helper.h +32 -0
- package/src/helper/nim_node_sysmsg_helper.cpp +132 -0
- package/src/helper/nim_node_sysmsg_helper.h +28 -0
- package/src/helper/nim_node_talk_ex_helper.cpp +137 -0
- package/src/helper/nim_node_talk_ex_helper.h +57 -0
- package/src/helper/nim_node_talk_helper.cpp +332 -0
- package/src/helper/nim_node_talk_helper.h +58 -0
- package/src/helper/nim_node_team_helper.cpp +482 -0
- package/src/helper/nim_node_team_helper.h +50 -0
- package/src/helper/nim_node_tool_helper.cpp +30 -0
- package/src/helper/nim_node_tool_helper.h +25 -0
- package/src/helper/nim_node_user_helper.cpp +186 -0
- package/src/helper/nim_node_user_helper.h +28 -0
- package/src/nim_event_handler.cpp +22 -0
- package/src/nim_event_handler.h +28 -0
- package/src/nim_node_async_queue.cpp +19 -0
- package/src/nim_node_async_queue.h +146 -0
- package/src/nim_node_engine.cpp +67 -0
- package/src/nim_node_engine.h +5 -0
- package/src/nim_node_helper.cpp +297 -0
- package/src/nim_node_helper.h +261 -0
package/just-task.js
CHANGED
|
@@ -107,20 +107,21 @@ task('install', () => {
|
|
|
107
107
|
logger.info('[install] Skip downlaod prebuilt libraries.')
|
|
108
108
|
return
|
|
109
109
|
}
|
|
110
|
-
let target =
|
|
111
|
-
let runtime =
|
|
110
|
+
let target = process.env.npm_config_target
|
|
111
|
+
let runtime = process.env.npm_config_runtime
|
|
112
112
|
const targetPlatform = process.env.npm_config_target_platform || process.platform
|
|
113
113
|
const targetArch = process.env.npm_config_target_arch || process.arch
|
|
114
|
-
const downloadUrl = process.env.npm_config_download_url
|
|
115
114
|
const curPkgMeta = require(path.join(__dirname, 'package.json'))
|
|
116
115
|
const rootPkgMeta = require(path.join(process.env.INIT_CWD, 'package.json'))
|
|
117
116
|
logger.info('------------------ just install --------------------')
|
|
118
|
-
if (
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
117
|
+
if (!target && !runtime) {
|
|
118
|
+
if (rootPkgMeta.devDependencies && rootPkgMeta.devDependencies.electron) {
|
|
119
|
+
// v13.1.2 => 13.1.2, remove prefix 'v'
|
|
120
|
+
target = rootPkgMeta.devDependencies.electron.replace(/^.*?(\d+.+\d).*/, '$1')
|
|
121
|
+
} else {
|
|
122
|
+
target = process.version.match(/^v(\d+\.\d+)/)[1]
|
|
123
|
+
runtime = 'node'
|
|
124
|
+
}
|
|
124
125
|
}
|
|
125
126
|
// 13.1.2 => 13.1, match major.minor only
|
|
126
127
|
const nodeAbi = `${runtime}-v${target.replace(/^(\d+.+?\d+).*/, '$1')}`
|
|
@@ -147,12 +148,16 @@ task('install', () => {
|
|
|
147
148
|
const cachePath = path.join(__dirname, 'nim_sdk')
|
|
148
149
|
const temporaryPath = path.join(__dirname, 'temporary')
|
|
149
150
|
fetchWrapper({
|
|
151
|
+
platform: targetPlatform,
|
|
152
|
+
arch: targetArch,
|
|
150
153
|
fetchUrl: nativeUrl,
|
|
151
154
|
temporaryPath,
|
|
152
155
|
extractPath: cachePath
|
|
153
156
|
})
|
|
154
157
|
.then(() => {
|
|
155
158
|
return buildWrapper({
|
|
159
|
+
platform: targetPlatform,
|
|
160
|
+
arch: targetArch,
|
|
156
161
|
sourcePath: cachePath
|
|
157
162
|
})
|
|
158
163
|
})
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-nim",
|
|
3
|
-
"version": "7.8.13-rc.
|
|
3
|
+
"version": "7.8.13-rc.5",
|
|
4
4
|
"description": "NetEase IM nodejs wrapper based on NetEase IM C++ SDK",
|
|
5
5
|
"main": "js/nim.js",
|
|
6
6
|
"types": "types/nim.d.ts",
|
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
"js",
|
|
46
46
|
"scripts",
|
|
47
47
|
"just-task.js",
|
|
48
|
-
"binding.gyp"
|
|
48
|
+
"binding.gyp",
|
|
49
|
+
"src"
|
|
49
50
|
]
|
|
50
51
|
}
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
#include "nim_node_client.h"
|
|
2
|
+
#include <node_object_wrap.h>
|
|
3
|
+
#include "../helper/nim_node_client_helper.h"
|
|
4
|
+
#include "nim_cpp_wrapper/api/nim_cpp_client.h"
|
|
5
|
+
#include "nim_node_client_event_handler.h"
|
|
6
|
+
#include "nim_node_helper.h"
|
|
7
|
+
|
|
8
|
+
namespace nim_node {
|
|
9
|
+
DEFINE_CLASS(Client);
|
|
10
|
+
|
|
11
|
+
Client::Client(Isolate* isolate) {
|
|
12
|
+
isolate_ = isolate;
|
|
13
|
+
}
|
|
14
|
+
Client::~Client() {}
|
|
15
|
+
void Client::InitModule(Local<Object>& module) {
|
|
16
|
+
BEGIN_OBJECT_INIT(Client, New, 5)
|
|
17
|
+
|
|
18
|
+
SET_PROTOTYPE(Init)
|
|
19
|
+
SET_PROTOTYPE(GetSDKConfig)
|
|
20
|
+
SET_PROTOTYPE(CleanUp)
|
|
21
|
+
SET_PROTOTYPE(CleanUp2)
|
|
22
|
+
SET_PROTOTYPE(LoginCustomDataToJson)
|
|
23
|
+
SET_PROTOTYPE(Login)
|
|
24
|
+
SET_PROTOTYPE(GetLoginState)
|
|
25
|
+
SET_PROTOTYPE(Relogin)
|
|
26
|
+
SET_PROTOTYPE(Logout)
|
|
27
|
+
SET_PROTOTYPE(KickOtherClient)
|
|
28
|
+
SET_PROTOTYPE(RegReloginCb)
|
|
29
|
+
SET_PROTOTYPE(RegKickoutCb)
|
|
30
|
+
SET_PROTOTYPE(RegDisconnectCb)
|
|
31
|
+
SET_PROTOTYPE(RegMultispotLoginCb)
|
|
32
|
+
SET_PROTOTYPE(RegKickOtherClientCb)
|
|
33
|
+
SET_PROTOTYPE(RegSyncMultiportPushConfigCb)
|
|
34
|
+
SET_PROTOTYPE(SetMultiportPushConfigAsync)
|
|
35
|
+
SET_PROTOTYPE(GetMultiportPushConfigAsync)
|
|
36
|
+
SET_PROTOTYPE(GetSDKVersion)
|
|
37
|
+
SET_PROTOTYPE(GetServerCurrentTime)
|
|
38
|
+
SET_PROTOTYPE(GetCurrentUserAccount)
|
|
39
|
+
SET_PROTOTYPE(UnregClientCb)
|
|
40
|
+
END_OBJECT_INIT(Client)
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
void Client::New(const FunctionCallbackInfo<Value>& args) {
|
|
44
|
+
Isolate* isolate = args.GetIsolate();
|
|
45
|
+
if (args.IsConstructCall()) {
|
|
46
|
+
Client* client = new Client(isolate);
|
|
47
|
+
client->Wrap(args.This());
|
|
48
|
+
args.GetReturnValue().Set(args.This());
|
|
49
|
+
} else {
|
|
50
|
+
Local<Function> cons = Local<Function>::New(isolate, constructor);
|
|
51
|
+
Local<Context> context = isolate->GetCurrentContext();
|
|
52
|
+
Local<Object> instance = cons->NewInstance(context).ToLocalChecked();
|
|
53
|
+
args.GetReturnValue().Set(instance);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
NIM_SDK_NODE_API_DEF(Client, Init) {
|
|
58
|
+
CHECK_API_FUNC(Client, 4)
|
|
59
|
+
UTF8String appkey, appdata_path, app_install_path;
|
|
60
|
+
auto status = napi_ok;
|
|
61
|
+
GET_ARGS_VALUE(isolate, 0, utf8string, appkey)
|
|
62
|
+
GET_ARGS_VALUE(isolate, 1, utf8string, appdata_path)
|
|
63
|
+
GET_ARGS_VALUE(isolate, 2, utf8string, app_install_path)
|
|
64
|
+
nim::SDKConfig config;
|
|
65
|
+
status = nim_client_config_obj_to_struct(isolate, args[3]->ToObject(isolate->GetCurrentContext()).ToLocalChecked(), config);
|
|
66
|
+
if (status != napi_ok) {
|
|
67
|
+
}
|
|
68
|
+
bool ret = nim::Client::Init(appkey.toUtf8String(), appdata_path.toUtf8String(), app_install_path.toUtf8String(), config);
|
|
69
|
+
args.GetReturnValue().Set(Integer::New(args.GetIsolate(), ret ? 1 : 0));
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
NIM_SDK_NODE_API_DEF(Client, GetSDKConfig) {
|
|
73
|
+
CHECK_API_FUNC(Client, 0)
|
|
74
|
+
|
|
75
|
+
nim::SDKConfig config = nim::Client::GetSDKConfig();
|
|
76
|
+
Local<Object> config_obj = Object::New(isolate);
|
|
77
|
+
nim_client_config_to_obj(isolate, config, config_obj);
|
|
78
|
+
args.GetReturnValue().Set(config_obj);
|
|
79
|
+
}
|
|
80
|
+
NIM_SDK_NODE_API_DEF(Client, CleanUp) {
|
|
81
|
+
CHECK_API_FUNC(Client, 1)
|
|
82
|
+
|
|
83
|
+
UTF8String ext;
|
|
84
|
+
auto status = napi_ok;
|
|
85
|
+
GET_ARGS_VALUE(isolate, 0, utf8string, ext)
|
|
86
|
+
|
|
87
|
+
nim::Client::Cleanup(ext.toUtf8String());
|
|
88
|
+
}
|
|
89
|
+
NIM_SDK_NODE_API_DEF(Client, CleanUp2) {
|
|
90
|
+
CHECK_API_FUNC(Client, 1)
|
|
91
|
+
|
|
92
|
+
UTF8String ext;
|
|
93
|
+
auto status = napi_ok;
|
|
94
|
+
GET_ARGS_VALUE(isolate, 0, utf8string, ext)
|
|
95
|
+
|
|
96
|
+
nim::Client::Cleanup2(ext.toUtf8String());
|
|
97
|
+
}
|
|
98
|
+
NIM_SDK_NODE_API_DEF(Client, LoginCustomDataToJson) {
|
|
99
|
+
CHECK_API_FUNC(Client, 1)
|
|
100
|
+
|
|
101
|
+
UTF8String custom_data;
|
|
102
|
+
auto status = napi_ok;
|
|
103
|
+
GET_ARGS_VALUE(isolate, 0, utf8string, custom_data)
|
|
104
|
+
|
|
105
|
+
utf8_string jsonValue;
|
|
106
|
+
nim::Client::LoginCustomDataToJson(custom_data.toUtf8String(), jsonValue);
|
|
107
|
+
|
|
108
|
+
args.GetReturnValue().Set(String::NewFromUtf8(isolate, jsonValue.c_str(), NewStringType::kInternalized).ToLocalChecked());
|
|
109
|
+
}
|
|
110
|
+
NIM_SDK_NODE_API_DEF(Client, Login) {
|
|
111
|
+
CHECK_API_FUNC(Client, 5)
|
|
112
|
+
UTF8String appkey, account, psw, exten;
|
|
113
|
+
auto status = napi_ok;
|
|
114
|
+
GET_ARGS_VALUE(isolate, 0, utf8string, appkey)
|
|
115
|
+
GET_ARGS_VALUE(isolate, 1, utf8string, account)
|
|
116
|
+
GET_ARGS_VALUE(isolate, 2, utf8string, psw)
|
|
117
|
+
GET_ARGS_VALUE(isolate, 4, utf8string, exten)
|
|
118
|
+
ASSEMBLE_BASE_CALLBACK(3);
|
|
119
|
+
auto callback = std::bind(&ClientEventHandler::OnLoginCallback, bcb, false, std::placeholders::_1);
|
|
120
|
+
bool ret = nim::Client::Login(appkey.toUtf8String(), account.toUtf8String(), psw.toUtf8String(), callback);
|
|
121
|
+
|
|
122
|
+
args.GetReturnValue().Set(Boolean::New(args.GetIsolate(), ret ? 200 : 0));
|
|
123
|
+
}
|
|
124
|
+
NIM_SDK_NODE_API_DEF(Client, GetLoginState) {
|
|
125
|
+
CHECK_API_FUNC(Client, 1)
|
|
126
|
+
|
|
127
|
+
UTF8String ext;
|
|
128
|
+
auto status = napi_ok;
|
|
129
|
+
GET_ARGS_VALUE(isolate, 0, utf8string, ext)
|
|
130
|
+
|
|
131
|
+
nim::NIMLoginState state = nim::Client::GetLoginState(ext.toUtf8String());
|
|
132
|
+
args.GetReturnValue().Set(Integer::NewFromUnsigned(isolate, (uint32_t)state));
|
|
133
|
+
}
|
|
134
|
+
NIM_SDK_NODE_API_DEF(Client, Relogin) {
|
|
135
|
+
CHECK_API_FUNC(Client, 1)
|
|
136
|
+
|
|
137
|
+
UTF8String ext;
|
|
138
|
+
auto status = napi_ok;
|
|
139
|
+
GET_ARGS_VALUE(isolate, 0, utf8string, ext)
|
|
140
|
+
|
|
141
|
+
nim::Client::Relogin(ext.toUtf8String());
|
|
142
|
+
}
|
|
143
|
+
NIM_SDK_NODE_API_DEF(Client, Logout) {
|
|
144
|
+
CHECK_API_FUNC(Client, 3)
|
|
145
|
+
uint32_t type;
|
|
146
|
+
UTF8String exten;
|
|
147
|
+
auto status = napi_ok;
|
|
148
|
+
GET_ARGS_VALUE(isolate, 0, uint32, type)
|
|
149
|
+
ASSEMBLE_BASE_CALLBACK(1)
|
|
150
|
+
GET_ARGS_VALUE(isolate, 2, utf8string, exten)
|
|
151
|
+
|
|
152
|
+
auto callback = std::bind(&ClientEventHandler::OnLogoutCallback, bcb, std::placeholders::_1);
|
|
153
|
+
nim::Client::Logout((nim::NIMLogoutType)(type), callback, exten.toUtf8String());
|
|
154
|
+
}
|
|
155
|
+
NIM_SDK_NODE_API_DEF(Client, KickOtherClient) {
|
|
156
|
+
CHECK_API_FUNC(Client, 1)
|
|
157
|
+
|
|
158
|
+
std::list<utf8_string> others;
|
|
159
|
+
auto status = napi_ok;
|
|
160
|
+
GET_ARGS_VALUE(isolate, 0, utf8string_list, others)
|
|
161
|
+
|
|
162
|
+
nim::Client::KickOtherClient(others);
|
|
163
|
+
}
|
|
164
|
+
NIM_SDK_NODE_API_DEF(Client, RegReloginCb) {
|
|
165
|
+
CHECK_API_FUNC(Client, 2)
|
|
166
|
+
|
|
167
|
+
UTF8String exten;
|
|
168
|
+
ASSEMBLE_REG_CALLBACK(0, ClientEventHandler, "OnReloginCallback")
|
|
169
|
+
auto status = napi_ok;
|
|
170
|
+
GET_ARGS_VALUE(isolate, 1, utf8string, exten)
|
|
171
|
+
|
|
172
|
+
auto callback = std::bind(&ClientEventHandler::OnLoginCallback, nullptr, true, std::placeholders::_1);
|
|
173
|
+
nim::Client::RegReloginCb(callback, exten.toUtf8String());
|
|
174
|
+
}
|
|
175
|
+
NIM_SDK_NODE_API_DEF(Client, RegKickoutCb) {
|
|
176
|
+
CHECK_API_FUNC(Client, 2)
|
|
177
|
+
|
|
178
|
+
UTF8String exten;
|
|
179
|
+
ASSEMBLE_REG_CALLBACK(0, ClientEventHandler, "OnKickoutCallback")
|
|
180
|
+
auto status = napi_ok;
|
|
181
|
+
GET_ARGS_VALUE(isolate, 1, utf8string, exten)
|
|
182
|
+
|
|
183
|
+
auto callback = std::bind(&ClientEventHandler::OnKickoutCallback, std::placeholders::_1);
|
|
184
|
+
nim::Client::RegKickoutCb(callback, exten.toUtf8String());
|
|
185
|
+
}
|
|
186
|
+
NIM_SDK_NODE_API_DEF(Client, RegDisconnectCb) {
|
|
187
|
+
CHECK_API_FUNC(Client, 2)
|
|
188
|
+
|
|
189
|
+
UTF8String exten;
|
|
190
|
+
ASSEMBLE_REG_CALLBACK(0, ClientEventHandler, "OnDisconnectCallback")
|
|
191
|
+
auto status = napi_ok;
|
|
192
|
+
GET_ARGS_VALUE(isolate, 1, utf8string, exten)
|
|
193
|
+
|
|
194
|
+
auto callback = std::bind(&ClientEventHandler::OnDisconnectCallback);
|
|
195
|
+
nim::Client::RegDisconnectCb(callback, exten.toUtf8String());
|
|
196
|
+
}
|
|
197
|
+
NIM_SDK_NODE_API_DEF(Client, RegMultispotLoginCb) {
|
|
198
|
+
CHECK_API_FUNC(Client, 2)
|
|
199
|
+
|
|
200
|
+
UTF8String exten;
|
|
201
|
+
ASSEMBLE_REG_CALLBACK(0, ClientEventHandler, "OnMultispotLoginCallback")
|
|
202
|
+
auto status = napi_ok;
|
|
203
|
+
GET_ARGS_VALUE(isolate, 1, utf8string, exten)
|
|
204
|
+
|
|
205
|
+
auto callback = std::bind(&ClientEventHandler::OnMultispotLoginCallback, std::placeholders::_1);
|
|
206
|
+
nim::Client::RegMultispotLoginCb(callback, exten.toUtf8String());
|
|
207
|
+
}
|
|
208
|
+
NIM_SDK_NODE_API_DEF(Client, RegKickOtherClientCb) {
|
|
209
|
+
CHECK_API_FUNC(Client, 2)
|
|
210
|
+
|
|
211
|
+
UTF8String exten;
|
|
212
|
+
ASSEMBLE_REG_CALLBACK(0, ClientEventHandler, "OnKickOtherClientCallback")
|
|
213
|
+
auto status = napi_ok;
|
|
214
|
+
GET_ARGS_VALUE(isolate, 1, utf8string, exten)
|
|
215
|
+
|
|
216
|
+
auto callback = std::bind(&ClientEventHandler::OnKickOtherClientCallback, std::placeholders::_1);
|
|
217
|
+
nim::Client::RegKickOtherClientCb(callback, exten.toUtf8String());
|
|
218
|
+
}
|
|
219
|
+
NIM_SDK_NODE_API_DEF(Client, RegSyncMultiportPushConfigCb) {
|
|
220
|
+
CHECK_API_FUNC(Client, 2)
|
|
221
|
+
|
|
222
|
+
UTF8String exten;
|
|
223
|
+
ASSEMBLE_REG_CALLBACK(0, ClientEventHandler, "OnSyncMultiportPushConfigCallback")
|
|
224
|
+
auto status = napi_ok;
|
|
225
|
+
GET_ARGS_VALUE(isolate, 1, utf8string, exten)
|
|
226
|
+
|
|
227
|
+
auto callback = std::bind(&ClientEventHandler::OnSyncMultiportPushConfigCallback, nullptr, std::placeholders::_1, std::placeholders::_2);
|
|
228
|
+
nim::Client::RegSyncMultiportPushConfigCb(callback, exten.toUtf8String());
|
|
229
|
+
}
|
|
230
|
+
NIM_SDK_NODE_API_DEF(Client, SetMultiportPushConfigAsync) {
|
|
231
|
+
CHECK_API_FUNC(Client, 3)
|
|
232
|
+
bool switch_on;
|
|
233
|
+
UTF8String exten;
|
|
234
|
+
auto status = napi_ok;
|
|
235
|
+
GET_ARGS_VALUE(isolate, 0, bool, switch_on)
|
|
236
|
+
ASSEMBLE_BASE_CALLBACK(1)
|
|
237
|
+
GET_ARGS_VALUE(isolate, 2, utf8string, exten)
|
|
238
|
+
|
|
239
|
+
auto callback = std::bind(&ClientEventHandler::OnSyncMultiportPushConfigCallback, bcb, std::placeholders::_1, std::placeholders::_2);
|
|
240
|
+
nim::Client::SetMultiportPushConfigAsync(switch_on, callback, exten.toUtf8String());
|
|
241
|
+
}
|
|
242
|
+
NIM_SDK_NODE_API_DEF(Client, GetMultiportPushConfigAsync) {
|
|
243
|
+
CHECK_API_FUNC(Client, 2)
|
|
244
|
+
|
|
245
|
+
UTF8String exten;
|
|
246
|
+
auto status = napi_ok;
|
|
247
|
+
GET_ARGS_VALUE(isolate, 1, utf8string, exten)
|
|
248
|
+
ASSEMBLE_BASE_CALLBACK(0)
|
|
249
|
+
|
|
250
|
+
auto callback = std::bind(&ClientEventHandler::OnSyncMultiportPushConfigCallback, bcb, std::placeholders::_1, std::placeholders::_2);
|
|
251
|
+
nim::Client::GetMultiportPushConfigAsync(callback, exten.toUtf8String());
|
|
252
|
+
}
|
|
253
|
+
NIM_SDK_NODE_API_DEF(Client, GetSDKVersion) {
|
|
254
|
+
CHECK_API_FUNC(Client, 0)
|
|
255
|
+
|
|
256
|
+
utf8_string version = nim::Client::GetSDKVersion();
|
|
257
|
+
args.GetReturnValue().Set(nim_napi_new_utf8string(args.GetIsolate(), version.c_str()));
|
|
258
|
+
}
|
|
259
|
+
NIM_SDK_NODE_API_DEF(Client, GetServerCurrentTime) {
|
|
260
|
+
CHECK_API_FUNC(Client, 2)
|
|
261
|
+
|
|
262
|
+
bool calc_local;
|
|
263
|
+
auto status = napi_ok;
|
|
264
|
+
GET_ARGS_VALUE(isolate, 1, bool, calc_local)
|
|
265
|
+
ASSEMBLE_BASE_CALLBACK(0)
|
|
266
|
+
|
|
267
|
+
auto callback =
|
|
268
|
+
std::bind(&ClientEventHandler::OnGetServerCurrentTimeCallback, bcb, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3);
|
|
269
|
+
nim::Client::GetServerCurrentTime(callback, calc_local);
|
|
270
|
+
}
|
|
271
|
+
NIM_SDK_NODE_API_DEF(Client, GetCurrentUserAccount) {
|
|
272
|
+
CHECK_API_FUNC(Client, 0)
|
|
273
|
+
|
|
274
|
+
auto accid = nim::Client::GetCurrentUserAccount();
|
|
275
|
+
args.GetReturnValue().Set(nim_napi_new_utf8string(args.GetIsolate(), accid.c_str()));
|
|
276
|
+
}
|
|
277
|
+
NIM_SDK_NODE_API_DEF(Client, UnregClientCb) {
|
|
278
|
+
CHECK_API_FUNC(Client, 0)
|
|
279
|
+
nim::Client::UnregClientCb();
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
} // namespace nim_node
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
#ifndef NIM_NODE_SDK_CLIENT_H
|
|
2
|
+
#define NIM_NODE_SDK_CLIENT_H
|
|
3
|
+
|
|
4
|
+
#include <node.h>
|
|
5
|
+
#include <node_object_wrap.h>
|
|
6
|
+
#include "nim_cpp_wrapper/helper/nim_client_helper.h"
|
|
7
|
+
#include "nim_node_helper.h"
|
|
8
|
+
|
|
9
|
+
namespace nim_node {
|
|
10
|
+
class Client : public node::ObjectWrap {
|
|
11
|
+
private:
|
|
12
|
+
/* data */
|
|
13
|
+
public:
|
|
14
|
+
static void New(const FunctionCallbackInfo<Value>& args);
|
|
15
|
+
static void InitModule(Local<Object>& module);
|
|
16
|
+
|
|
17
|
+
public:
|
|
18
|
+
NIM_SDK_NODE_API(Init);
|
|
19
|
+
NIM_SDK_NODE_API(GetSDKConfig);
|
|
20
|
+
NIM_SDK_NODE_API(CleanUp);
|
|
21
|
+
NIM_SDK_NODE_API(CleanUp2);
|
|
22
|
+
NIM_SDK_NODE_API(LoginCustomDataToJson);
|
|
23
|
+
NIM_SDK_NODE_API(Login);
|
|
24
|
+
NIM_SDK_NODE_API(GetLoginState);
|
|
25
|
+
NIM_SDK_NODE_API(Relogin);
|
|
26
|
+
NIM_SDK_NODE_API(Logout);
|
|
27
|
+
NIM_SDK_NODE_API(KickOtherClient);
|
|
28
|
+
NIM_SDK_NODE_API(RegReloginCb);
|
|
29
|
+
NIM_SDK_NODE_API(RegKickoutCb);
|
|
30
|
+
NIM_SDK_NODE_API(RegDisconnectCb);
|
|
31
|
+
NIM_SDK_NODE_API(RegMultispotLoginCb);
|
|
32
|
+
NIM_SDK_NODE_API(RegKickOtherClientCb);
|
|
33
|
+
NIM_SDK_NODE_API(RegSyncMultiportPushConfigCb);
|
|
34
|
+
NIM_SDK_NODE_API(SetMultiportPushConfigAsync);
|
|
35
|
+
NIM_SDK_NODE_API(GetMultiportPushConfigAsync);
|
|
36
|
+
NIM_SDK_NODE_API(GetSDKVersion);
|
|
37
|
+
NIM_SDK_NODE_API(GetServerCurrentTime);
|
|
38
|
+
NIM_SDK_NODE_API(GetCurrentUserAccount);
|
|
39
|
+
NIM_SDK_NODE_API(UnregClientCb);
|
|
40
|
+
|
|
41
|
+
protected:
|
|
42
|
+
Client(Isolate* isolate);
|
|
43
|
+
~Client();
|
|
44
|
+
|
|
45
|
+
private:
|
|
46
|
+
DECLARE_CLASS;
|
|
47
|
+
|
|
48
|
+
Isolate* isolate_;
|
|
49
|
+
};
|
|
50
|
+
} // namespace nim_node
|
|
51
|
+
|
|
52
|
+
#endif // NIM_NODE_SDK_CLIENT_H
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
#include "nim_node_client_event_handler.h"
|
|
2
|
+
#include "../helper/nim_node_client_helper.h"
|
|
3
|
+
#include "nim_node_async_queue.h"
|
|
4
|
+
#include "nim_node_helper.h"
|
|
5
|
+
// #include "DbgHelp.h"
|
|
6
|
+
#include <sstream>
|
|
7
|
+
|
|
8
|
+
namespace nim_node {
|
|
9
|
+
// string TraceStack()
|
|
10
|
+
// {
|
|
11
|
+
// static const int MAX_STACK_FRAMES = 5;
|
|
12
|
+
|
|
13
|
+
// void *pStack[MAX_STACK_FRAMES];
|
|
14
|
+
|
|
15
|
+
// HANDLE process = GetCurrentProcess();
|
|
16
|
+
// SymInitialize(process, NULL, TRUE);
|
|
17
|
+
// WORD frames = CaptureStackBackTrace(0, MAX_STACK_FRAMES, pStack, NULL);
|
|
18
|
+
|
|
19
|
+
// std::ostringstream oss;
|
|
20
|
+
// oss << "stack traceback: " << std::endl;
|
|
21
|
+
// for (WORD i = 0; i < frames; ++i) {
|
|
22
|
+
// DWORD64 address = (DWORD64)(pStack[i]);
|
|
23
|
+
|
|
24
|
+
// DWORD64 displacementSym = 0;
|
|
25
|
+
// char buffer[sizeof(SYMBOL_INFO) + MAX_SYM_NAME * sizeof(TCHAR)];
|
|
26
|
+
// PSYMBOL_INFO pSymbol = (PSYMBOL_INFO)buffer;
|
|
27
|
+
// pSymbol->SizeOfStruct = sizeof(SYMBOL_INFO);
|
|
28
|
+
// pSymbol->MaxNameLen = MAX_SYM_NAME;
|
|
29
|
+
|
|
30
|
+
// DWORD displacementLine = 0;
|
|
31
|
+
// IMAGEHLP_LINE64 line;
|
|
32
|
+
// //SymSetOptions(SYMOPT_LOAD_LINES);
|
|
33
|
+
// line.SizeOfStruct = sizeof(IMAGEHLP_LINE64);
|
|
34
|
+
|
|
35
|
+
// if (SymFromAddr(process, address, &displacementSym, pSymbol)
|
|
36
|
+
// && SymGetLineFromAddr64(process, address, &displacementLine,
|
|
37
|
+
// &line)) { oss << "\t" << pSymbol->Name << " at " <<
|
|
38
|
+
// line.FileName << ":" << line.LineNumber << "(0x" << std::hex <<
|
|
39
|
+
// pSymbol->Address << std::dec << ")"
|
|
40
|
+
// << std::endl;
|
|
41
|
+
// }
|
|
42
|
+
// else {
|
|
43
|
+
// oss << "\terror: " << GetLastError() << std::endl;
|
|
44
|
+
// }
|
|
45
|
+
// }
|
|
46
|
+
// return oss.str();
|
|
47
|
+
// }
|
|
48
|
+
|
|
49
|
+
void ClientEventHandler::OnLoginCallback(const BaseCallbackPtr& bcb,
|
|
50
|
+
bool relogin_cb,
|
|
51
|
+
const nim::LoginRes& login_res) {
|
|
52
|
+
node_async_call::async_call([=]() {
|
|
53
|
+
ClientEventHandler::GetInstance()->Node_OnLoginCallback(bcb, relogin_cb,
|
|
54
|
+
login_res);
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
void ClientEventHandler::Node_OnLoginCallback(const BaseCallbackPtr& bcb,
|
|
59
|
+
bool relogin_cb,
|
|
60
|
+
const nim::LoginRes& login_res) {
|
|
61
|
+
// printf("###################%s\r", TraceStack().c_str());
|
|
62
|
+
Isolate* isolate = Isolate::GetCurrent();
|
|
63
|
+
HandleScope scope(isolate);
|
|
64
|
+
const unsigned argc = 1;
|
|
65
|
+
Local<Object> res = Object::New(isolate);
|
|
66
|
+
nim_client_login_res_to_obj(isolate, login_res, res);
|
|
67
|
+
Local<Value> argv[argc] = {res};
|
|
68
|
+
if (bcb != nullptr) {
|
|
69
|
+
bcb->callback_.Get(isolate)->Call(isolate->GetCurrentContext(),
|
|
70
|
+
bcb->data_.Get(isolate), argc, argv);
|
|
71
|
+
} else {
|
|
72
|
+
std::string fun_name =
|
|
73
|
+
relogin_cb ? "OnReloginCallback" : "OnLoginCallback";
|
|
74
|
+
auto it = callbacks_.find(fun_name);
|
|
75
|
+
if (it != callbacks_.end()) {
|
|
76
|
+
it->second->callback_.Get(isolate)->Call(
|
|
77
|
+
isolate->GetCurrentContext(), it->second->data_.Get(isolate),
|
|
78
|
+
argc, argv);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
void ClientEventHandler::OnFunctionCallback() {
|
|
84
|
+
node_async_call::async_call([]() {
|
|
85
|
+
ClientEventHandler::GetInstance()->Node_OnFunctionCallback();
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
void ClientEventHandler::Node_OnFunctionCallback() {
|
|
90
|
+
Isolate* isolate = Isolate::GetCurrent();
|
|
91
|
+
HandleScope scope(isolate);
|
|
92
|
+
auto it = callbacks_.find("OnFunctionCallback");
|
|
93
|
+
if (it != callbacks_.end()) {
|
|
94
|
+
it->second->callback_.Get(isolate)->Call(isolate->GetCurrentContext(),
|
|
95
|
+
it->second->data_.Get(isolate),
|
|
96
|
+
0, nullptr);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
void ClientEventHandler::OnLogoutCallback(const BaseCallbackPtr& bcb,
|
|
101
|
+
nim::NIMResCode rescode) {
|
|
102
|
+
node_async_call::async_call([=]() {
|
|
103
|
+
ClientEventHandler::GetInstance()->Node_OnLogoutCallback(bcb, rescode);
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
void ClientEventHandler::Node_OnLogoutCallback(const BaseCallbackPtr& bcb,
|
|
108
|
+
nim::NIMResCode rescode) {
|
|
109
|
+
Isolate* isolate = Isolate::GetCurrent();
|
|
110
|
+
HandleScope scope(isolate);
|
|
111
|
+
const unsigned argc = 1;
|
|
112
|
+
Local<Value> argv[argc] = {Integer::New(isolate, rescode)};
|
|
113
|
+
bcb->callback_.Get(isolate)->Call(isolate->GetCurrentContext(),
|
|
114
|
+
bcb->data_.Get(isolate), argc, argv);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
void ClientEventHandler::OnKickoutCallback(const nim::KickoutRes& res) {
|
|
118
|
+
node_async_call::async_call([=]() {
|
|
119
|
+
ClientEventHandler::GetInstance()->Node_OnKickoutCallback(res);
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
void ClientEventHandler::OnDisconnectCallback() {
|
|
123
|
+
node_async_call::async_call([]() {
|
|
124
|
+
ClientEventHandler::GetInstance()->Node_OnDisconnectCallback();
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
void ClientEventHandler::OnMultispotLoginCallback(
|
|
128
|
+
const nim::MultiSpotLoginRes& res) {
|
|
129
|
+
node_async_call::async_call([=]() {
|
|
130
|
+
ClientEventHandler::GetInstance()->Node_OnMultispotLoginCallback(res);
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
void ClientEventHandler::OnKickOtherClientCallback(
|
|
134
|
+
const nim::KickOtherRes& res) {
|
|
135
|
+
node_async_call::async_call([=]() {
|
|
136
|
+
ClientEventHandler::GetInstance()->Node_OnKickOtherClientCallback(res);
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
void ClientEventHandler::OnSyncMultiportPushConfigCallback(
|
|
140
|
+
const BaseCallbackPtr& bcb,
|
|
141
|
+
int rescode,
|
|
142
|
+
bool open) {
|
|
143
|
+
node_async_call::async_call([=]() {
|
|
144
|
+
ClientEventHandler::GetInstance()
|
|
145
|
+
->Node_OnSyncMultiportPushConfigCallback(bcb, rescode, open);
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
void ClientEventHandler::Node_OnKickoutCallback(const nim::KickoutRes& res) {
|
|
150
|
+
Isolate* isolate = Isolate::GetCurrent();
|
|
151
|
+
HandleScope scope(isolate);
|
|
152
|
+
const unsigned argc = 1;
|
|
153
|
+
Local<Object> obj = Object::New(isolate);
|
|
154
|
+
nim_client_kickout_res_to_obj(isolate, res, obj);
|
|
155
|
+
Local<Value> argv[argc] = {obj};
|
|
156
|
+
auto it = callbacks_.find("OnKickoutCallback");
|
|
157
|
+
if (it != callbacks_.end()) {
|
|
158
|
+
it->second->callback_.Get(isolate)->Call(isolate->GetCurrentContext(),
|
|
159
|
+
it->second->data_.Get(isolate),
|
|
160
|
+
argc, argv);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
void ClientEventHandler::Node_OnDisconnectCallback() {
|
|
164
|
+
Isolate* isolate = Isolate::GetCurrent();
|
|
165
|
+
HandleScope scope(isolate);
|
|
166
|
+
auto it = callbacks_.find("OnDisconnectCallback");
|
|
167
|
+
if (it != callbacks_.end()) {
|
|
168
|
+
it->second->callback_.Get(isolate)->Call(isolate->GetCurrentContext(),
|
|
169
|
+
it->second->data_.Get(isolate),
|
|
170
|
+
0, nullptr);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
void ClientEventHandler::Node_OnMultispotLoginCallback(
|
|
174
|
+
const nim::MultiSpotLoginRes& res) {
|
|
175
|
+
Isolate* isolate = Isolate::GetCurrent();
|
|
176
|
+
HandleScope scope(isolate);
|
|
177
|
+
const unsigned argc = 1;
|
|
178
|
+
Local<Object> obj = Object::New(isolate);
|
|
179
|
+
nim_client_multispot_res_to_obj(isolate, res, obj);
|
|
180
|
+
Local<Value> argv[argc] = {obj};
|
|
181
|
+
auto it = callbacks_.find("OnMultispotLoginCallback");
|
|
182
|
+
if (it != callbacks_.end()) {
|
|
183
|
+
it->second->callback_.Get(isolate)->Call(isolate->GetCurrentContext(),
|
|
184
|
+
it->second->data_.Get(isolate),
|
|
185
|
+
argc, argv);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
void ClientEventHandler::Node_OnKickOtherClientCallback(
|
|
189
|
+
const nim::KickOtherRes& res) {
|
|
190
|
+
Isolate* isolate = Isolate::GetCurrent();
|
|
191
|
+
HandleScope scope(isolate);
|
|
192
|
+
const unsigned argc = 1;
|
|
193
|
+
Local<Object> obj = Object::New(isolate);
|
|
194
|
+
nim_client_kickother_res_to_obj(isolate, res, obj);
|
|
195
|
+
Local<Value> argv[argc] = {obj};
|
|
196
|
+
auto it = callbacks_.find("OnKickOtherClientCallback");
|
|
197
|
+
if (it != callbacks_.end()) {
|
|
198
|
+
it->second->callback_.Get(isolate)->Call(isolate->GetCurrentContext(),
|
|
199
|
+
it->second->data_.Get(isolate),
|
|
200
|
+
argc, argv);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
void ClientEventHandler::Node_OnSyncMultiportPushConfigCallback(
|
|
204
|
+
const BaseCallbackPtr& bcb,
|
|
205
|
+
int rescode,
|
|
206
|
+
bool open) {
|
|
207
|
+
Isolate* isolate = Isolate::GetCurrent();
|
|
208
|
+
HandleScope scope(isolate);
|
|
209
|
+
const unsigned argc = 2;
|
|
210
|
+
Local<Value> argv[argc] = {nim_napi_new_int32(isolate, rescode),
|
|
211
|
+
nim_napi_new_bool(isolate, open)};
|
|
212
|
+
if (bcb == nullptr) {
|
|
213
|
+
auto it = callbacks_.find("OnSyncMultiportPushConfigCallback");
|
|
214
|
+
if (it != callbacks_.end()) {
|
|
215
|
+
it->second->callback_.Get(isolate)->Call(
|
|
216
|
+
isolate->GetCurrentContext(), it->second->data_.Get(isolate), 2,
|
|
217
|
+
argv);
|
|
218
|
+
}
|
|
219
|
+
} else {
|
|
220
|
+
bcb->callback_.Get(isolate)->Call(isolate->GetCurrentContext(),
|
|
221
|
+
bcb->data_.Get(isolate), argc, argv);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
void ClientEventHandler::OnGetServerCurrentTimeCallback(
|
|
226
|
+
const BaseCallbackPtr& bcb,
|
|
227
|
+
int rescode,
|
|
228
|
+
bool calc_local,
|
|
229
|
+
uint64_t time) {
|
|
230
|
+
node_async_call::async_call([=]() {
|
|
231
|
+
ClientEventHandler::GetInstance()->Node_OnGetServerCurrentTimeCallback(
|
|
232
|
+
bcb, rescode, calc_local, time);
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
void ClientEventHandler::Node_OnGetServerCurrentTimeCallback(
|
|
237
|
+
const BaseCallbackPtr& bcb,
|
|
238
|
+
int rescode,
|
|
239
|
+
bool calc_local,
|
|
240
|
+
uint64_t time) {
|
|
241
|
+
Isolate* isolate = Isolate::GetCurrent();
|
|
242
|
+
HandleScope scope(isolate);
|
|
243
|
+
const unsigned argc = 3;
|
|
244
|
+
Local<Value> argv[argc] = {nim_napi_new_int32(isolate, rescode),
|
|
245
|
+
nim_napi_new_bool(isolate, calc_local),
|
|
246
|
+
nim_napi_new_uint64(isolate, time)};
|
|
247
|
+
bcb->callback_.Get(isolate)->Call(isolate->GetCurrentContext(),
|
|
248
|
+
bcb->data_.Get(isolate), argc, argv);
|
|
249
|
+
}
|
|
250
|
+
void ClientEventHandler::OnReloginRequestTokenCb(const BaseCallbackPtr& bcb,
|
|
251
|
+
std::string* res) {
|
|
252
|
+
std::string temp = *res;
|
|
253
|
+
node_async_call::async_call([=]() {
|
|
254
|
+
ClientEventHandler::GetInstance()->Node_OnReloginRequestTokenCb(bcb,
|
|
255
|
+
temp);
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
void ClientEventHandler::Node_OnReloginRequestTokenCb(
|
|
260
|
+
const BaseCallbackPtr& bcb,
|
|
261
|
+
std::string res) {
|
|
262
|
+
Isolate* isolate = Isolate::GetCurrent();
|
|
263
|
+
HandleScope scope(isolate);
|
|
264
|
+
const unsigned argc = 1;
|
|
265
|
+
Local<Value> argv[argc] = {nim_napi_new_utf8string(isolate, res.c_str())};
|
|
266
|
+
bcb->callback_.Get(isolate)->Call(isolate->GetCurrentContext(),
|
|
267
|
+
bcb->data_.Get(isolate), argc, argv);
|
|
268
|
+
}
|
|
269
|
+
} // namespace nim_node
|