dingtalk-stream 2.1.4 → 2.1.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/README.md +11 -0
- package/dist/client.cjs +23 -4
- package/dist/client.mjs +23 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
<p align="left">
|
|
2
|
+
<a target="_blank" href="https://github.com/open-dingtalk/dingtalk-stream-sdk-nodejs/actions/workflows/publish.yml">
|
|
3
|
+
<img src="https://img.shields.io/github/actions/workflow/status/open-dingtalk/dingtalk-stream-sdk-nodejs/publish.yml" />
|
|
4
|
+
</a>
|
|
5
|
+
|
|
6
|
+
<a target="_blank" href="https://www.npmjs.com/package/dingtalk-stream">
|
|
7
|
+
<img alt="NPM Version" src="https://img.shields.io/npm/v/dingtalk-stream">
|
|
8
|
+
</a>
|
|
9
|
+
|
|
10
|
+
</p>
|
|
11
|
+
|
|
1
12
|
钉钉支持 Stream 模式接入事件推送、机器人收消息以及卡片回调,该 SDK 实现了 Stream 模式。相比 Webhook 模式,Stream 模式可以更简单的接入各类事件和回调。
|
|
2
13
|
|
|
3
14
|
## 开发教程
|
package/dist/client.cjs
CHANGED
|
@@ -132,7 +132,14 @@ class DWClient extends EventEmitter {
|
|
|
132
132
|
return new Promise((resolve, reject) => {
|
|
133
133
|
this.userDisconnect = false;
|
|
134
134
|
this.printDebug("Connecting to dingtalk websocket @ " + this.dw_url);
|
|
135
|
-
|
|
135
|
+
try {
|
|
136
|
+
this.socket = new WebSocket(this.dw_url, this.sslopts);
|
|
137
|
+
} catch (err) {
|
|
138
|
+
this.printDebug("WebSocket constructor error");
|
|
139
|
+
console.warn("ERROR", err);
|
|
140
|
+
reject(err);
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
136
143
|
this.socket.on("open", () => {
|
|
137
144
|
this.connected = true;
|
|
138
145
|
console.info("[" + (/* @__PURE__ */ new Date()).toISOString() + "] connect success");
|
|
@@ -150,6 +157,7 @@ class DWClient extends EventEmitter {
|
|
|
150
157
|
(_b = this.socket) == null ? void 0 : _b.ping("", true);
|
|
151
158
|
}, this.heartbeat_interval);
|
|
152
159
|
}
|
|
160
|
+
resolve();
|
|
153
161
|
});
|
|
154
162
|
this.socket.on("pong", () => {
|
|
155
163
|
this.heartbeat();
|
|
@@ -170,15 +178,26 @@ class DWClient extends EventEmitter {
|
|
|
170
178
|
}
|
|
171
179
|
});
|
|
172
180
|
this.socket.on("error", (err) => {
|
|
181
|
+
var _a;
|
|
173
182
|
this.printDebug("SOCKET ERROR");
|
|
174
183
|
console.warn("ERROR", err);
|
|
184
|
+
(_a = this.socket) == null ? void 0 : _a.terminate();
|
|
185
|
+
reject(err);
|
|
175
186
|
});
|
|
176
|
-
resolve();
|
|
177
187
|
});
|
|
178
188
|
}
|
|
179
189
|
async connect() {
|
|
180
|
-
|
|
181
|
-
|
|
190
|
+
try {
|
|
191
|
+
await this.getEndpoint();
|
|
192
|
+
await this._connect();
|
|
193
|
+
} catch (err) {
|
|
194
|
+
if (this.config.autoReconnect && !this.userDisconnect) {
|
|
195
|
+
this.printDebug(
|
|
196
|
+
"Connect failed, retrying in " + this.reconnectInterval / 1e3 + " seconds..."
|
|
197
|
+
);
|
|
198
|
+
setTimeout(() => this.connect(), this.reconnectInterval);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
182
201
|
}
|
|
183
202
|
disconnect() {
|
|
184
203
|
var _a;
|
package/dist/client.mjs
CHANGED
|
@@ -130,7 +130,14 @@ class DWClient extends EventEmitter {
|
|
|
130
130
|
return new Promise((resolve, reject) => {
|
|
131
131
|
this.userDisconnect = false;
|
|
132
132
|
this.printDebug("Connecting to dingtalk websocket @ " + this.dw_url);
|
|
133
|
-
|
|
133
|
+
try {
|
|
134
|
+
this.socket = new WebSocket(this.dw_url, this.sslopts);
|
|
135
|
+
} catch (err) {
|
|
136
|
+
this.printDebug("WebSocket constructor error");
|
|
137
|
+
console.warn("ERROR", err);
|
|
138
|
+
reject(err);
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
134
141
|
this.socket.on("open", () => {
|
|
135
142
|
this.connected = true;
|
|
136
143
|
console.info("[" + (/* @__PURE__ */ new Date()).toISOString() + "] connect success");
|
|
@@ -148,6 +155,7 @@ class DWClient extends EventEmitter {
|
|
|
148
155
|
(_b = this.socket) == null ? void 0 : _b.ping("", true);
|
|
149
156
|
}, this.heartbeat_interval);
|
|
150
157
|
}
|
|
158
|
+
resolve();
|
|
151
159
|
});
|
|
152
160
|
this.socket.on("pong", () => {
|
|
153
161
|
this.heartbeat();
|
|
@@ -168,15 +176,26 @@ class DWClient extends EventEmitter {
|
|
|
168
176
|
}
|
|
169
177
|
});
|
|
170
178
|
this.socket.on("error", (err) => {
|
|
179
|
+
var _a;
|
|
171
180
|
this.printDebug("SOCKET ERROR");
|
|
172
181
|
console.warn("ERROR", err);
|
|
182
|
+
(_a = this.socket) == null ? void 0 : _a.terminate();
|
|
183
|
+
reject(err);
|
|
173
184
|
});
|
|
174
|
-
resolve();
|
|
175
185
|
});
|
|
176
186
|
}
|
|
177
187
|
async connect() {
|
|
178
|
-
|
|
179
|
-
|
|
188
|
+
try {
|
|
189
|
+
await this.getEndpoint();
|
|
190
|
+
await this._connect();
|
|
191
|
+
} catch (err) {
|
|
192
|
+
if (this.config.autoReconnect && !this.userDisconnect) {
|
|
193
|
+
this.printDebug(
|
|
194
|
+
"Connect failed, retrying in " + this.reconnectInterval / 1e3 + " seconds..."
|
|
195
|
+
);
|
|
196
|
+
setTimeout(() => this.connect(), this.reconnectInterval);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
180
199
|
}
|
|
181
200
|
disconnect() {
|
|
182
201
|
var _a;
|
package/package.json
CHANGED