mezon-js 2.9.70 → 2.9.72
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/client.ts +6 -0
- package/dist/client.d.ts +5 -0
- package/dist/mezon-js.cjs.js +30 -99
- package/dist/mezon-js.esm.mjs +30 -99
- package/dist/socket.d.ts +13 -60
- package/dist/web_socket_adapter.d.ts +0 -1
- package/package.json +1 -1
- package/socket.ts +40 -163
- package/web_socket_adapter.ts +0 -3
package/client.ts
CHANGED
|
@@ -181,6 +181,12 @@ export enum NotificationType {
|
|
|
181
181
|
NOTHING_MESSAGE = 3,
|
|
182
182
|
}
|
|
183
183
|
|
|
184
|
+
export enum WebrtcSignalingType {
|
|
185
|
+
WEBRTC_SDP_OFFER = 1,
|
|
186
|
+
WEBRTC_SDP_ANSWER = 2,
|
|
187
|
+
WEBRTC_ICE_CANDIDATE = 3
|
|
188
|
+
}
|
|
189
|
+
|
|
184
190
|
/** Response for an RPC function executed on the server. */
|
|
185
191
|
export interface RpcResponse {
|
|
186
192
|
/** The identifier of the function. */
|
package/dist/client.d.ts
CHANGED
|
@@ -40,6 +40,11 @@ export declare enum NotificationType {
|
|
|
40
40
|
MENTION_MESSAGE = 2,
|
|
41
41
|
NOTHING_MESSAGE = 3
|
|
42
42
|
}
|
|
43
|
+
export declare enum WebrtcSignalingType {
|
|
44
|
+
WEBRTC_SDP_OFFER = 1,
|
|
45
|
+
WEBRTC_SDP_ANSWER = 2,
|
|
46
|
+
WEBRTC_ICE_CANDIDATE = 3
|
|
47
|
+
}
|
|
43
48
|
/** Response for an RPC function executed on the server. */
|
|
44
49
|
export interface RpcResponse {
|
|
45
50
|
/** The identifier of the function. */
|
package/dist/mezon-js.cjs.js
CHANGED
|
@@ -60,7 +60,8 @@ __export(mezon_js_exports, {
|
|
|
60
60
|
DefaultSocket: () => DefaultSocket,
|
|
61
61
|
NotificationType: () => NotificationType,
|
|
62
62
|
Session: () => Session,
|
|
63
|
-
WebSocketAdapterText: () => WebSocketAdapterText
|
|
63
|
+
WebSocketAdapterText: () => WebSocketAdapterText,
|
|
64
|
+
WebrtcSignalingType: () => WebrtcSignalingType
|
|
64
65
|
});
|
|
65
66
|
module.exports = __toCommonJS(mezon_js_exports);
|
|
66
67
|
|
|
@@ -6817,43 +6818,9 @@ var _DefaultSocket = class _DefaultSocket {
|
|
|
6817
6818
|
} else if (message.token_sent_event) {
|
|
6818
6819
|
this.ontokensent(message.token_sent_event);
|
|
6819
6820
|
} else if (message.message_button_clicked) {
|
|
6820
|
-
this.
|
|
6821
|
-
|
|
6822
|
-
);
|
|
6823
|
-
} else if (message.call_request) {
|
|
6824
|
-
console.log("message.call_request", message.call_request);
|
|
6825
|
-
yield this.adapter.getRTCPeerConnection().setRemoteDescription(
|
|
6826
|
-
new RTCSessionDescription({
|
|
6827
|
-
type: "offer",
|
|
6828
|
-
sdp: message.call_request.sdp
|
|
6829
|
-
})
|
|
6830
|
-
);
|
|
6831
|
-
const answer = yield this.adapter.getRTCPeerConnection().createAnswer();
|
|
6832
|
-
yield this.adapter.getRTCPeerConnection().setLocalDescription(answer);
|
|
6833
|
-
yield this.sendCallAccept({
|
|
6834
|
-
sdp: answer.sdp,
|
|
6835
|
-
type: "answer"
|
|
6836
|
-
});
|
|
6837
|
-
this.onCallRequest(message.call_request);
|
|
6838
|
-
} else if (message.call_accept) {
|
|
6839
|
-
console.log("message.call_accept", message.call_accept);
|
|
6840
|
-
yield this.adapter.getRTCPeerConnection().setRemoteDescription(
|
|
6841
|
-
new RTCSessionDescription({
|
|
6842
|
-
type: "answer",
|
|
6843
|
-
sdp: message.call_accept.sdp
|
|
6844
|
-
})
|
|
6845
|
-
);
|
|
6846
|
-
this.onCallAccept(message.call_accept);
|
|
6847
|
-
} else if (message.ice_candidate_init) {
|
|
6848
|
-
console.log("message.ice_candidate_init", message.ice_candidate_init);
|
|
6849
|
-
const rtcIceCandidate = new RTCIceCandidate({
|
|
6850
|
-
candidate: message.ice_candidate_init.candidate,
|
|
6851
|
-
sdpMid: message.ice_candidate_init.sdpMid || "audio",
|
|
6852
|
-
sdpMLineIndex: message.ice_candidate_init.sdpMLineIndex || 0,
|
|
6853
|
-
usernameFragment: message.ice_candidate_init.usernameFragment || void 0
|
|
6854
|
-
});
|
|
6855
|
-
yield this.adapter.getRTCPeerConnection().addIceCandidate(rtcIceCandidate);
|
|
6856
|
-
this.onIceCandidateInit(message.ice_candidate_init);
|
|
6821
|
+
this.onmessagebuttonclicked(message.message_button_clicked);
|
|
6822
|
+
} else if (message.webrtc_signaling_fwd) {
|
|
6823
|
+
this.onwebrtcsignalingfwd(message.webrtc_signaling_fwd);
|
|
6857
6824
|
} else {
|
|
6858
6825
|
if (this.verbose && window && window.console) {
|
|
6859
6826
|
console.log("Unrecognized message received: %o", message);
|
|
@@ -7131,24 +7098,14 @@ var _DefaultSocket = class _DefaultSocket {
|
|
|
7131
7098
|
console.log(tokenSentEvent);
|
|
7132
7099
|
}
|
|
7133
7100
|
}
|
|
7134
|
-
|
|
7101
|
+
onmessagebuttonclicked(messageButtonClicked) {
|
|
7135
7102
|
if (this.verbose && window && window.console) {
|
|
7136
7103
|
console.log(messageButtonClicked);
|
|
7137
7104
|
}
|
|
7138
7105
|
}
|
|
7139
|
-
|
|
7140
|
-
if (this.verbose && window && window.console) {
|
|
7141
|
-
console.log(callRequest);
|
|
7142
|
-
}
|
|
7143
|
-
}
|
|
7144
|
-
onCallAccept(callAccept) {
|
|
7145
|
-
if (this.verbose && window && window.console) {
|
|
7146
|
-
console.log(callAccept);
|
|
7147
|
-
}
|
|
7148
|
-
}
|
|
7149
|
-
onIceCandidateInit(iceCandidateInit) {
|
|
7106
|
+
onwebrtcsignalingfwd(event) {
|
|
7150
7107
|
if (this.verbose && window && window.console) {
|
|
7151
|
-
console.log(
|
|
7108
|
+
console.log(event);
|
|
7152
7109
|
}
|
|
7153
7110
|
}
|
|
7154
7111
|
send(message, sendTimeout = _DefaultSocket.DefaultSendTimeoutMs) {
|
|
@@ -7176,54 +7133,6 @@ var _DefaultSocket = class _DefaultSocket {
|
|
|
7176
7133
|
}
|
|
7177
7134
|
});
|
|
7178
7135
|
}
|
|
7179
|
-
getRTCPeerConnection() {
|
|
7180
|
-
return this.adapter.getRTCPeerConnection();
|
|
7181
|
-
}
|
|
7182
|
-
startCall(localVideoRef, remoteVideoRef, grant_permissions) {
|
|
7183
|
-
return __async(this, null, function* () {
|
|
7184
|
-
this.adapter.getRTCPeerConnection().onicecandidate = (event) => {
|
|
7185
|
-
if (event && event.candidate) {
|
|
7186
|
-
this.sendICECandidateInit({ candidate: event == null ? void 0 : event.candidate });
|
|
7187
|
-
}
|
|
7188
|
-
};
|
|
7189
|
-
this.adapter.getRTCPeerConnection().ontrack = (event) => {
|
|
7190
|
-
if (remoteVideoRef) {
|
|
7191
|
-
remoteVideoRef.srcObject = event.streams[0];
|
|
7192
|
-
}
|
|
7193
|
-
};
|
|
7194
|
-
const stream = yield navigator.mediaDevices.getUserMedia(grant_permissions);
|
|
7195
|
-
if (localVideoRef) {
|
|
7196
|
-
localVideoRef.srcObject = stream;
|
|
7197
|
-
}
|
|
7198
|
-
stream.getTracks().forEach(
|
|
7199
|
-
(track) => {
|
|
7200
|
-
var _a;
|
|
7201
|
-
return (_a = this.adapter.getRTCPeerConnection()) == null ? void 0 : _a.addTrack(track, stream);
|
|
7202
|
-
}
|
|
7203
|
-
);
|
|
7204
|
-
const offer = yield this.adapter.getRTCPeerConnection().createOffer();
|
|
7205
|
-
yield this.adapter.getRTCPeerConnection().setLocalDescription(offer);
|
|
7206
|
-
yield this.sendCallRequest({
|
|
7207
|
-
sdp: offer == null ? void 0 : offer.sdp,
|
|
7208
|
-
type: "offer"
|
|
7209
|
-
});
|
|
7210
|
-
});
|
|
7211
|
-
}
|
|
7212
|
-
sendCallRequest(req) {
|
|
7213
|
-
return __async(this, null, function* () {
|
|
7214
|
-
return yield this.send({ call_request: req });
|
|
7215
|
-
});
|
|
7216
|
-
}
|
|
7217
|
-
sendCallAccept(req) {
|
|
7218
|
-
return __async(this, null, function* () {
|
|
7219
|
-
return yield this.send({ call_accept: req });
|
|
7220
|
-
});
|
|
7221
|
-
}
|
|
7222
|
-
sendICECandidateInit(req) {
|
|
7223
|
-
return __async(this, null, function* () {
|
|
7224
|
-
return yield this.send({ ice_candidate_init: req });
|
|
7225
|
-
});
|
|
7226
|
-
}
|
|
7227
7136
|
followUsers(userIds) {
|
|
7228
7137
|
return __async(this, null, function* () {
|
|
7229
7138
|
const response = yield this.send({ status_follow: { user_ids: userIds } });
|
|
@@ -7445,6 +7354,22 @@ var _DefaultSocket = class _DefaultSocket {
|
|
|
7445
7354
|
return response.check_name_existed_event;
|
|
7446
7355
|
});
|
|
7447
7356
|
}
|
|
7357
|
+
forwardWebrtcSignaling(receiver_id, data_type, json_data) {
|
|
7358
|
+
return __async(this, null, function* () {
|
|
7359
|
+
const response = yield this.send({
|
|
7360
|
+
webrtc_signaling_fwd: { receiver_id, data_type, json_data }
|
|
7361
|
+
});
|
|
7362
|
+
return response.webrtc_signaling_fwd;
|
|
7363
|
+
});
|
|
7364
|
+
}
|
|
7365
|
+
handleMessageButtonClick(message_id, channel_id, button_id, sender_id, user_id) {
|
|
7366
|
+
return __async(this, null, function* () {
|
|
7367
|
+
const response = yield this.send({
|
|
7368
|
+
message_button_clicked: { message_id, channel_id, button_id, sender_id, user_id }
|
|
7369
|
+
});
|
|
7370
|
+
return response.webrtc_signaling_fwd;
|
|
7371
|
+
});
|
|
7372
|
+
}
|
|
7448
7373
|
pingPong() {
|
|
7449
7374
|
return __async(this, null, function* () {
|
|
7450
7375
|
if (!this.adapter.isOpen()) {
|
|
@@ -7503,6 +7428,12 @@ var NotificationType = /* @__PURE__ */ ((NotificationType2) => {
|
|
|
7503
7428
|
NotificationType2[NotificationType2["NOTHING_MESSAGE"] = 3] = "NOTHING_MESSAGE";
|
|
7504
7429
|
return NotificationType2;
|
|
7505
7430
|
})(NotificationType || {});
|
|
7431
|
+
var WebrtcSignalingType = /* @__PURE__ */ ((WebrtcSignalingType2) => {
|
|
7432
|
+
WebrtcSignalingType2[WebrtcSignalingType2["WEBRTC_SDP_OFFER"] = 1] = "WEBRTC_SDP_OFFER";
|
|
7433
|
+
WebrtcSignalingType2[WebrtcSignalingType2["WEBRTC_SDP_ANSWER"] = 2] = "WEBRTC_SDP_ANSWER";
|
|
7434
|
+
WebrtcSignalingType2[WebrtcSignalingType2["WEBRTC_ICE_CANDIDATE"] = 3] = "WEBRTC_ICE_CANDIDATE";
|
|
7435
|
+
return WebrtcSignalingType2;
|
|
7436
|
+
})(WebrtcSignalingType || {});
|
|
7506
7437
|
var Client = class {
|
|
7507
7438
|
constructor(serverkey = DEFAULT_SERVER_KEY, host = DEFAULT_HOST, port = DEFAULT_PORT, useSSL = false, timeout = DEFAULT_TIMEOUT_MS, autoRefreshSession = true) {
|
|
7508
7439
|
this.serverkey = serverkey;
|
package/dist/mezon-js.esm.mjs
CHANGED
|
@@ -6788,43 +6788,9 @@ var _DefaultSocket = class _DefaultSocket {
|
|
|
6788
6788
|
} else if (message.token_sent_event) {
|
|
6789
6789
|
this.ontokensent(message.token_sent_event);
|
|
6790
6790
|
} else if (message.message_button_clicked) {
|
|
6791
|
-
this.
|
|
6792
|
-
|
|
6793
|
-
);
|
|
6794
|
-
} else if (message.call_request) {
|
|
6795
|
-
console.log("message.call_request", message.call_request);
|
|
6796
|
-
yield this.adapter.getRTCPeerConnection().setRemoteDescription(
|
|
6797
|
-
new RTCSessionDescription({
|
|
6798
|
-
type: "offer",
|
|
6799
|
-
sdp: message.call_request.sdp
|
|
6800
|
-
})
|
|
6801
|
-
);
|
|
6802
|
-
const answer = yield this.adapter.getRTCPeerConnection().createAnswer();
|
|
6803
|
-
yield this.adapter.getRTCPeerConnection().setLocalDescription(answer);
|
|
6804
|
-
yield this.sendCallAccept({
|
|
6805
|
-
sdp: answer.sdp,
|
|
6806
|
-
type: "answer"
|
|
6807
|
-
});
|
|
6808
|
-
this.onCallRequest(message.call_request);
|
|
6809
|
-
} else if (message.call_accept) {
|
|
6810
|
-
console.log("message.call_accept", message.call_accept);
|
|
6811
|
-
yield this.adapter.getRTCPeerConnection().setRemoteDescription(
|
|
6812
|
-
new RTCSessionDescription({
|
|
6813
|
-
type: "answer",
|
|
6814
|
-
sdp: message.call_accept.sdp
|
|
6815
|
-
})
|
|
6816
|
-
);
|
|
6817
|
-
this.onCallAccept(message.call_accept);
|
|
6818
|
-
} else if (message.ice_candidate_init) {
|
|
6819
|
-
console.log("message.ice_candidate_init", message.ice_candidate_init);
|
|
6820
|
-
const rtcIceCandidate = new RTCIceCandidate({
|
|
6821
|
-
candidate: message.ice_candidate_init.candidate,
|
|
6822
|
-
sdpMid: message.ice_candidate_init.sdpMid || "audio",
|
|
6823
|
-
sdpMLineIndex: message.ice_candidate_init.sdpMLineIndex || 0,
|
|
6824
|
-
usernameFragment: message.ice_candidate_init.usernameFragment || void 0
|
|
6825
|
-
});
|
|
6826
|
-
yield this.adapter.getRTCPeerConnection().addIceCandidate(rtcIceCandidate);
|
|
6827
|
-
this.onIceCandidateInit(message.ice_candidate_init);
|
|
6791
|
+
this.onmessagebuttonclicked(message.message_button_clicked);
|
|
6792
|
+
} else if (message.webrtc_signaling_fwd) {
|
|
6793
|
+
this.onwebrtcsignalingfwd(message.webrtc_signaling_fwd);
|
|
6828
6794
|
} else {
|
|
6829
6795
|
if (this.verbose && window && window.console) {
|
|
6830
6796
|
console.log("Unrecognized message received: %o", message);
|
|
@@ -7102,24 +7068,14 @@ var _DefaultSocket = class _DefaultSocket {
|
|
|
7102
7068
|
console.log(tokenSentEvent);
|
|
7103
7069
|
}
|
|
7104
7070
|
}
|
|
7105
|
-
|
|
7071
|
+
onmessagebuttonclicked(messageButtonClicked) {
|
|
7106
7072
|
if (this.verbose && window && window.console) {
|
|
7107
7073
|
console.log(messageButtonClicked);
|
|
7108
7074
|
}
|
|
7109
7075
|
}
|
|
7110
|
-
|
|
7111
|
-
if (this.verbose && window && window.console) {
|
|
7112
|
-
console.log(callRequest);
|
|
7113
|
-
}
|
|
7114
|
-
}
|
|
7115
|
-
onCallAccept(callAccept) {
|
|
7116
|
-
if (this.verbose && window && window.console) {
|
|
7117
|
-
console.log(callAccept);
|
|
7118
|
-
}
|
|
7119
|
-
}
|
|
7120
|
-
onIceCandidateInit(iceCandidateInit) {
|
|
7076
|
+
onwebrtcsignalingfwd(event) {
|
|
7121
7077
|
if (this.verbose && window && window.console) {
|
|
7122
|
-
console.log(
|
|
7078
|
+
console.log(event);
|
|
7123
7079
|
}
|
|
7124
7080
|
}
|
|
7125
7081
|
send(message, sendTimeout = _DefaultSocket.DefaultSendTimeoutMs) {
|
|
@@ -7147,54 +7103,6 @@ var _DefaultSocket = class _DefaultSocket {
|
|
|
7147
7103
|
}
|
|
7148
7104
|
});
|
|
7149
7105
|
}
|
|
7150
|
-
getRTCPeerConnection() {
|
|
7151
|
-
return this.adapter.getRTCPeerConnection();
|
|
7152
|
-
}
|
|
7153
|
-
startCall(localVideoRef, remoteVideoRef, grant_permissions) {
|
|
7154
|
-
return __async(this, null, function* () {
|
|
7155
|
-
this.adapter.getRTCPeerConnection().onicecandidate = (event) => {
|
|
7156
|
-
if (event && event.candidate) {
|
|
7157
|
-
this.sendICECandidateInit({ candidate: event == null ? void 0 : event.candidate });
|
|
7158
|
-
}
|
|
7159
|
-
};
|
|
7160
|
-
this.adapter.getRTCPeerConnection().ontrack = (event) => {
|
|
7161
|
-
if (remoteVideoRef) {
|
|
7162
|
-
remoteVideoRef.srcObject = event.streams[0];
|
|
7163
|
-
}
|
|
7164
|
-
};
|
|
7165
|
-
const stream = yield navigator.mediaDevices.getUserMedia(grant_permissions);
|
|
7166
|
-
if (localVideoRef) {
|
|
7167
|
-
localVideoRef.srcObject = stream;
|
|
7168
|
-
}
|
|
7169
|
-
stream.getTracks().forEach(
|
|
7170
|
-
(track) => {
|
|
7171
|
-
var _a;
|
|
7172
|
-
return (_a = this.adapter.getRTCPeerConnection()) == null ? void 0 : _a.addTrack(track, stream);
|
|
7173
|
-
}
|
|
7174
|
-
);
|
|
7175
|
-
const offer = yield this.adapter.getRTCPeerConnection().createOffer();
|
|
7176
|
-
yield this.adapter.getRTCPeerConnection().setLocalDescription(offer);
|
|
7177
|
-
yield this.sendCallRequest({
|
|
7178
|
-
sdp: offer == null ? void 0 : offer.sdp,
|
|
7179
|
-
type: "offer"
|
|
7180
|
-
});
|
|
7181
|
-
});
|
|
7182
|
-
}
|
|
7183
|
-
sendCallRequest(req) {
|
|
7184
|
-
return __async(this, null, function* () {
|
|
7185
|
-
return yield this.send({ call_request: req });
|
|
7186
|
-
});
|
|
7187
|
-
}
|
|
7188
|
-
sendCallAccept(req) {
|
|
7189
|
-
return __async(this, null, function* () {
|
|
7190
|
-
return yield this.send({ call_accept: req });
|
|
7191
|
-
});
|
|
7192
|
-
}
|
|
7193
|
-
sendICECandidateInit(req) {
|
|
7194
|
-
return __async(this, null, function* () {
|
|
7195
|
-
return yield this.send({ ice_candidate_init: req });
|
|
7196
|
-
});
|
|
7197
|
-
}
|
|
7198
7106
|
followUsers(userIds) {
|
|
7199
7107
|
return __async(this, null, function* () {
|
|
7200
7108
|
const response = yield this.send({ status_follow: { user_ids: userIds } });
|
|
@@ -7416,6 +7324,22 @@ var _DefaultSocket = class _DefaultSocket {
|
|
|
7416
7324
|
return response.check_name_existed_event;
|
|
7417
7325
|
});
|
|
7418
7326
|
}
|
|
7327
|
+
forwardWebrtcSignaling(receiver_id, data_type, json_data) {
|
|
7328
|
+
return __async(this, null, function* () {
|
|
7329
|
+
const response = yield this.send({
|
|
7330
|
+
webrtc_signaling_fwd: { receiver_id, data_type, json_data }
|
|
7331
|
+
});
|
|
7332
|
+
return response.webrtc_signaling_fwd;
|
|
7333
|
+
});
|
|
7334
|
+
}
|
|
7335
|
+
handleMessageButtonClick(message_id, channel_id, button_id, sender_id, user_id) {
|
|
7336
|
+
return __async(this, null, function* () {
|
|
7337
|
+
const response = yield this.send({
|
|
7338
|
+
message_button_clicked: { message_id, channel_id, button_id, sender_id, user_id }
|
|
7339
|
+
});
|
|
7340
|
+
return response.webrtc_signaling_fwd;
|
|
7341
|
+
});
|
|
7342
|
+
}
|
|
7419
7343
|
pingPong() {
|
|
7420
7344
|
return __async(this, null, function* () {
|
|
7421
7345
|
if (!this.adapter.isOpen()) {
|
|
@@ -7474,6 +7398,12 @@ var NotificationType = /* @__PURE__ */ ((NotificationType2) => {
|
|
|
7474
7398
|
NotificationType2[NotificationType2["NOTHING_MESSAGE"] = 3] = "NOTHING_MESSAGE";
|
|
7475
7399
|
return NotificationType2;
|
|
7476
7400
|
})(NotificationType || {});
|
|
7401
|
+
var WebrtcSignalingType = /* @__PURE__ */ ((WebrtcSignalingType2) => {
|
|
7402
|
+
WebrtcSignalingType2[WebrtcSignalingType2["WEBRTC_SDP_OFFER"] = 1] = "WEBRTC_SDP_OFFER";
|
|
7403
|
+
WebrtcSignalingType2[WebrtcSignalingType2["WEBRTC_SDP_ANSWER"] = 2] = "WEBRTC_SDP_ANSWER";
|
|
7404
|
+
WebrtcSignalingType2[WebrtcSignalingType2["WEBRTC_ICE_CANDIDATE"] = 3] = "WEBRTC_ICE_CANDIDATE";
|
|
7405
|
+
return WebrtcSignalingType2;
|
|
7406
|
+
})(WebrtcSignalingType || {});
|
|
7477
7407
|
var Client = class {
|
|
7478
7408
|
constructor(serverkey = DEFAULT_SERVER_KEY, host = DEFAULT_HOST, port = DEFAULT_PORT, useSSL = false, timeout = DEFAULT_TIMEOUT_MS, autoRefreshSession = true) {
|
|
7479
7409
|
this.serverkey = serverkey;
|
|
@@ -9860,5 +9790,6 @@ export {
|
|
|
9860
9790
|
DefaultSocket,
|
|
9861
9791
|
NotificationType,
|
|
9862
9792
|
Session,
|
|
9863
|
-
WebSocketAdapterText
|
|
9793
|
+
WebSocketAdapterText,
|
|
9794
|
+
WebrtcSignalingType
|
|
9864
9795
|
};
|
package/dist/socket.d.ts
CHANGED
|
@@ -584,19 +584,10 @@ export interface MessageButtonClicked {
|
|
|
584
584
|
sender_id: string;
|
|
585
585
|
user_id: string;
|
|
586
586
|
}
|
|
587
|
-
export interface
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
export interface CallAccept {
|
|
592
|
-
type: string;
|
|
593
|
-
sdp: string;
|
|
594
|
-
}
|
|
595
|
-
export interface ICECandidateInit {
|
|
596
|
-
candidate: string;
|
|
597
|
-
sdpMid: string | undefined;
|
|
598
|
-
sdpMLineIndex: number | undefined;
|
|
599
|
-
usernameFragment: string | undefined;
|
|
587
|
+
export interface WebrtcSignalingFwd {
|
|
588
|
+
receiverId: string;
|
|
589
|
+
dataType: number;
|
|
590
|
+
jsonData: string;
|
|
600
591
|
}
|
|
601
592
|
/** A socket connection to Mezon server. */
|
|
602
593
|
export interface Socket {
|
|
@@ -604,7 +595,6 @@ export interface Socket {
|
|
|
604
595
|
isOpen(): boolean;
|
|
605
596
|
/** Connect to the server. */
|
|
606
597
|
connect(session: Session, createStatus: boolean, platform: string, connectTimeoutMs?: number, signal?: AbortSignal): Promise<Session>;
|
|
607
|
-
getRTCPeerConnection(): RTCPeerConnection;
|
|
608
598
|
/** Disconnect from the server. */
|
|
609
599
|
disconnect(fireDisconnectEvent: boolean): void;
|
|
610
600
|
/** Subscribe to one or more users for their status updates. */
|
|
@@ -699,10 +689,10 @@ export interface Socket {
|
|
|
699
689
|
setHeartbeatTimeoutMs(ms: number): void;
|
|
700
690
|
getHeartbeatTimeoutMs(): number;
|
|
701
691
|
checkDuplicateName(name: string, condition_id: string, type: number): Promise<CheckNameExistedEvent>;
|
|
702
|
-
handleMessageButtonClick: (
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
692
|
+
handleMessageButtonClick: (message_id: string, channel_id: string, button_id: string, sender_id: string, user_id: string) => Promise<MessageButtonClicked>;
|
|
693
|
+
onmessagebuttonclicked: (event: MessageButtonClicked) => void;
|
|
694
|
+
forwardWebrtcSignaling: (receiverId: string, dataType: number, jsonData: string) => Promise<WebrtcSignalingFwd>;
|
|
695
|
+
onwebrtcsignalingfwd: (event: WebrtcSignalingFwd) => void;
|
|
706
696
|
oneventcreated: (clan_event_created: ApiCreateEventRequest) => void;
|
|
707
697
|
oncoffeegiven: (give_coffee_event: ApiGiveCoffeeEvent) => void;
|
|
708
698
|
oneventemoji: (event_emoji: EventEmoji) => void;
|
|
@@ -715,24 +705,6 @@ export interface Socket {
|
|
|
715
705
|
onpermissionchanged: (permission_changed_event: PermissionChangedEvent) => void;
|
|
716
706
|
onunmuteevent: (unmute_event: UnmuteEvent) => void;
|
|
717
707
|
ontokensent: (token: ApiTokenSentEvent) => void;
|
|
718
|
-
sendCallRequest(req: {
|
|
719
|
-
type: string;
|
|
720
|
-
sdp: string;
|
|
721
|
-
}): Promise<void>;
|
|
722
|
-
sendCallAccept(req: {
|
|
723
|
-
type: string;
|
|
724
|
-
sdp: string;
|
|
725
|
-
}): Promise<void>;
|
|
726
|
-
sendICECandidateInit(req: {
|
|
727
|
-
candidate: string;
|
|
728
|
-
sdpMid: string | undefined;
|
|
729
|
-
sdpMLineIndex: number | undefined;
|
|
730
|
-
usernameFragment: string | undefined;
|
|
731
|
-
}): Promise<void>;
|
|
732
|
-
startCall(localVideoRef: any, remoteVideoRef: any, grant_permissions: {
|
|
733
|
-
video: boolean;
|
|
734
|
-
audio: boolean;
|
|
735
|
-
}): Promise<void>;
|
|
736
708
|
}
|
|
737
709
|
/** Reports an error received from a socket message. */
|
|
738
710
|
export interface SocketError {
|
|
@@ -807,30 +779,9 @@ export declare class DefaultSocket implements Socket {
|
|
|
807
779
|
onpermissionchanged(permission_changed_event: PermissionChangedEvent): void;
|
|
808
780
|
onunmuteevent(unmute_event: UnmuteEvent): void;
|
|
809
781
|
ontokensent(tokenSentEvent: ApiTokenSentEvent): void;
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
onIceCandidateInit(iceCandidateInit: ICECandidateInit): void;
|
|
814
|
-
send(message: ChannelJoin | ChannelLeave | ChannelMessageSend | ChannelMessageUpdate | CustomStatusEvent | ChannelMessageRemove | MessageTypingEvent | LastSeenMessageEvent | Rpc | StatusFollow | StatusUnfollow | StatusUpdate | Ping | CallRequest | CallAccept | ICECandidateInit, sendTimeout?: number): Promise<any>;
|
|
815
|
-
getRTCPeerConnection(): RTCPeerConnection;
|
|
816
|
-
startCall(localVideoRef: any, remoteVideoRef: any, grant_permissions: {
|
|
817
|
-
video: boolean;
|
|
818
|
-
audio: boolean;
|
|
819
|
-
}): Promise<void>;
|
|
820
|
-
sendCallRequest(req: {
|
|
821
|
-
type: string;
|
|
822
|
-
sdp?: string;
|
|
823
|
-
}): Promise<void>;
|
|
824
|
-
sendCallAccept(req: {
|
|
825
|
-
type: string;
|
|
826
|
-
sdp?: string;
|
|
827
|
-
}): Promise<void>;
|
|
828
|
-
sendICECandidateInit(req: {
|
|
829
|
-
candidate: string;
|
|
830
|
-
sdpMid?: string | undefined;
|
|
831
|
-
sdpMLineIndex?: number | undefined;
|
|
832
|
-
usernameFragment?: string | undefined;
|
|
833
|
-
}): Promise<void>;
|
|
782
|
+
onmessagebuttonclicked(messageButtonClicked: MessageButtonClicked): void;
|
|
783
|
+
onwebrtcsignalingfwd(event: WebrtcSignalingFwd): void;
|
|
784
|
+
send(message: ChannelJoin | ChannelLeave | ChannelMessageSend | ChannelMessageUpdate | CustomStatusEvent | ChannelMessageRemove | MessageTypingEvent | LastSeenMessageEvent | Rpc | StatusFollow | StatusUnfollow | StatusUpdate | Ping | WebrtcSignalingFwd | MessageButtonClicked, sendTimeout?: number): Promise<any>;
|
|
834
785
|
followUsers(userIds: string[]): Promise<Status>;
|
|
835
786
|
joinClanChat(clan_id: string): Promise<ClanJoin>;
|
|
836
787
|
joinChat(clan_id: string, channel_id: string, channel_type: number, is_public: boolean): Promise<Channel>;
|
|
@@ -849,6 +800,8 @@ export declare class DefaultSocket implements Socket {
|
|
|
849
800
|
writeVoiceLeaved(id: string, clanId: string, voiceChannelId: string, voiceUserId: string): Promise<VoiceLeavedEvent>;
|
|
850
801
|
writeCustomStatus(clan_id: string, status: string): Promise<CustomStatusEvent>;
|
|
851
802
|
checkDuplicateName(name: string, condition_id: string, type: number): Promise<CheckNameExistedEvent>;
|
|
803
|
+
forwardWebrtcSignaling(receiver_id: string, data_type: number, json_data: string): Promise<WebrtcSignalingFwd>;
|
|
804
|
+
handleMessageButtonClick(message_id: string, channel_id: string, button_id: string, sender_id: string, user_id: string): Promise<MessageButtonClicked>;
|
|
852
805
|
private pingPong;
|
|
853
806
|
}
|
|
854
807
|
export {};
|
|
@@ -37,7 +37,6 @@ export interface WebSocketAdapter {
|
|
|
37
37
|
close(): void;
|
|
38
38
|
connect(scheme: string, host: string, port: string, createStatus: boolean, token: string, platform: string, signal?: AbortSignal): void;
|
|
39
39
|
send(message: any): void;
|
|
40
|
-
getRTCPeerConnection(): RTCPeerConnection;
|
|
41
40
|
}
|
|
42
41
|
/**
|
|
43
42
|
* SocketCloseHandler defines a lambda that handles WebSocket close events.
|
package/package.json
CHANGED
package/socket.ts
CHANGED
|
@@ -827,21 +827,10 @@ export interface MessageButtonClicked {
|
|
|
827
827
|
user_id: string;
|
|
828
828
|
}
|
|
829
829
|
|
|
830
|
-
export interface
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
export interface CallAccept {
|
|
836
|
-
type: string;
|
|
837
|
-
sdp: string;
|
|
838
|
-
}
|
|
839
|
-
|
|
840
|
-
export interface ICECandidateInit {
|
|
841
|
-
candidate: string;
|
|
842
|
-
sdpMid: string | undefined;
|
|
843
|
-
sdpMLineIndex: number | undefined;
|
|
844
|
-
usernameFragment: string | undefined;
|
|
830
|
+
export interface WebrtcSignalingFwd {
|
|
831
|
+
receiverId: string;
|
|
832
|
+
dataType: number;
|
|
833
|
+
jsonData: string;
|
|
845
834
|
}
|
|
846
835
|
|
|
847
836
|
/** A socket connection to Mezon server. */
|
|
@@ -858,8 +847,6 @@ export interface Socket {
|
|
|
858
847
|
signal?: AbortSignal
|
|
859
848
|
): Promise<Session>;
|
|
860
849
|
|
|
861
|
-
getRTCPeerConnection(): RTCPeerConnection;
|
|
862
|
-
|
|
863
850
|
/** Disconnect from the server. */
|
|
864
851
|
disconnect(fireDisconnectEvent: boolean): void;
|
|
865
852
|
|
|
@@ -1113,15 +1100,17 @@ export interface Socket {
|
|
|
1113
1100
|
type: number
|
|
1114
1101
|
): Promise<CheckNameExistedEvent>;
|
|
1115
1102
|
|
|
1116
|
-
handleMessageButtonClick: (
|
|
1117
|
-
|
|
1118
|
-
|
|
1103
|
+
handleMessageButtonClick: (message_id: string,
|
|
1104
|
+
channel_id: string,
|
|
1105
|
+
button_id: string,
|
|
1106
|
+
sender_id: string,
|
|
1107
|
+
user_id: string) => Promise<MessageButtonClicked>;
|
|
1119
1108
|
|
|
1120
|
-
|
|
1109
|
+
onmessagebuttonclicked: (event: MessageButtonClicked) => void;
|
|
1121
1110
|
|
|
1122
|
-
|
|
1111
|
+
forwardWebrtcSignaling: (receiverId: string, dataType: number, jsonData: string) => Promise<WebrtcSignalingFwd>;
|
|
1123
1112
|
|
|
1124
|
-
|
|
1113
|
+
onwebrtcsignalingfwd: (event: WebrtcSignalingFwd) => void;
|
|
1125
1114
|
|
|
1126
1115
|
oneventcreated: (clan_event_created: ApiCreateEventRequest) => void;
|
|
1127
1116
|
|
|
@@ -1153,21 +1142,7 @@ export interface Socket {
|
|
|
1153
1142
|
|
|
1154
1143
|
onunmuteevent: (unmute_event: UnmuteEvent) => void;
|
|
1155
1144
|
|
|
1156
|
-
ontokensent: (token: ApiTokenSentEvent) => void;
|
|
1157
|
-
|
|
1158
|
-
sendCallRequest(req: { type: string; sdp: string }): Promise<void>;
|
|
1159
|
-
sendCallAccept(req: { type: string; sdp: string }): Promise<void>;
|
|
1160
|
-
sendICECandidateInit(req: {
|
|
1161
|
-
candidate: string;
|
|
1162
|
-
sdpMid: string | undefined;
|
|
1163
|
-
sdpMLineIndex: number | undefined;
|
|
1164
|
-
usernameFragment: string | undefined;
|
|
1165
|
-
}): Promise<void>;
|
|
1166
|
-
startCall(
|
|
1167
|
-
localVideoRef: any,
|
|
1168
|
-
remoteVideoRef: any,
|
|
1169
|
-
grant_permissions: { video: boolean; audio: boolean }
|
|
1170
|
-
): Promise<void>;
|
|
1145
|
+
ontokensent: (token: ApiTokenSentEvent) => void;
|
|
1171
1146
|
}
|
|
1172
1147
|
|
|
1173
1148
|
/** Reports an error received from a socket message. */
|
|
@@ -1420,53 +1395,9 @@ export class DefaultSocket implements Socket {
|
|
|
1420
1395
|
} else if (message.token_sent_event) {
|
|
1421
1396
|
this.ontokensent(<ApiTokenSentEvent>message.token_sent_event);
|
|
1422
1397
|
} else if (message.message_button_clicked) {
|
|
1423
|
-
this.
|
|
1424
|
-
|
|
1425
|
-
);
|
|
1426
|
-
} else if (message.call_request) {
|
|
1427
|
-
console.log("message.call_request", message.call_request);
|
|
1428
|
-
await this.adapter.getRTCPeerConnection().setRemoteDescription(
|
|
1429
|
-
new RTCSessionDescription({
|
|
1430
|
-
type: "offer",
|
|
1431
|
-
sdp: message.call_request.sdp,
|
|
1432
|
-
})
|
|
1433
|
-
);
|
|
1434
|
-
const answer = await this.adapter
|
|
1435
|
-
.getRTCPeerConnection()
|
|
1436
|
-
.createAnswer();
|
|
1437
|
-
await this.adapter.getRTCPeerConnection().setLocalDescription(answer);
|
|
1438
|
-
// Check if WebSocket is initialized before sending message
|
|
1439
|
-
await this.sendCallAccept({
|
|
1440
|
-
sdp: answer.sdp,
|
|
1441
|
-
type: "answer",
|
|
1442
|
-
});
|
|
1443
|
-
|
|
1444
|
-
this.onCallRequest(<CallRequest>message.call_request);
|
|
1445
|
-
} else if (message.call_accept) {
|
|
1446
|
-
console.log("message.call_accept", message.call_accept);
|
|
1447
|
-
await this.adapter.getRTCPeerConnection().setRemoteDescription(
|
|
1448
|
-
new RTCSessionDescription({
|
|
1449
|
-
type: "answer",
|
|
1450
|
-
sdp: message.call_accept.sdp,
|
|
1451
|
-
})
|
|
1452
|
-
);
|
|
1453
|
-
|
|
1454
|
-
this.onCallAccept(<CallAccept>message.call_accept);
|
|
1455
|
-
} else if (message.ice_candidate_init) {
|
|
1456
|
-
console.log("message.ice_candidate_init", message.ice_candidate_init);
|
|
1457
|
-
const rtcIceCandidate = new RTCIceCandidate({
|
|
1458
|
-
candidate: message.ice_candidate_init.candidate,
|
|
1459
|
-
sdpMid: message.ice_candidate_init.sdpMid || "audio",
|
|
1460
|
-
sdpMLineIndex: message.ice_candidate_init.sdpMLineIndex || 0,
|
|
1461
|
-
usernameFragment:
|
|
1462
|
-
message.ice_candidate_init.usernameFragment || undefined,
|
|
1463
|
-
});
|
|
1464
|
-
|
|
1465
|
-
await this.adapter
|
|
1466
|
-
.getRTCPeerConnection()
|
|
1467
|
-
.addIceCandidate(rtcIceCandidate);
|
|
1468
|
-
|
|
1469
|
-
this.onIceCandidateInit(<ICECandidateInit>message.ice_candidate_init);
|
|
1398
|
+
this.onmessagebuttonclicked( <MessageButtonClicked>message.message_button_clicked);
|
|
1399
|
+
} else if (message.webrtc_signaling_fwd) {
|
|
1400
|
+
this.onwebrtcsignalingfwd(<WebrtcSignalingFwd>message.webrtc_signaling_fwd);
|
|
1470
1401
|
} else {
|
|
1471
1402
|
if (this.verbose && window && window.console) {
|
|
1472
1403
|
console.log("Unrecognized message received: %o", message);
|
|
@@ -1798,27 +1729,15 @@ export class DefaultSocket implements Socket {
|
|
|
1798
1729
|
}
|
|
1799
1730
|
}
|
|
1800
1731
|
|
|
1801
|
-
|
|
1732
|
+
onmessagebuttonclicked(messageButtonClicked: MessageButtonClicked) {
|
|
1802
1733
|
if (this.verbose && window && window.console) {
|
|
1803
1734
|
console.log(messageButtonClicked);
|
|
1804
1735
|
}
|
|
1805
1736
|
}
|
|
1806
1737
|
|
|
1807
|
-
|
|
1808
|
-
if (this.verbose && window && window.console) {
|
|
1809
|
-
console.log(callRequest);
|
|
1810
|
-
}
|
|
1811
|
-
}
|
|
1812
|
-
|
|
1813
|
-
onCallAccept(callAccept: CallAccept) {
|
|
1738
|
+
onwebrtcsignalingfwd(event: WebrtcSignalingFwd) {
|
|
1814
1739
|
if (this.verbose && window && window.console) {
|
|
1815
|
-
console.log(
|
|
1816
|
-
}
|
|
1817
|
-
}
|
|
1818
|
-
|
|
1819
|
-
onIceCandidateInit(iceCandidateInit: ICECandidateInit) {
|
|
1820
|
-
if (this.verbose && window && window.console) {
|
|
1821
|
-
console.log(iceCandidateInit);
|
|
1740
|
+
console.log(event);
|
|
1822
1741
|
}
|
|
1823
1742
|
}
|
|
1824
1743
|
|
|
@@ -1837,9 +1756,8 @@ export class DefaultSocket implements Socket {
|
|
|
1837
1756
|
| StatusUnfollow
|
|
1838
1757
|
| StatusUpdate
|
|
1839
1758
|
| Ping
|
|
1840
|
-
|
|
|
1841
|
-
|
|
|
1842
|
-
| ICECandidateInit,
|
|
1759
|
+
| WebrtcSignalingFwd
|
|
1760
|
+
| MessageButtonClicked,
|
|
1843
1761
|
sendTimeout = DefaultSocket.DefaultSendTimeoutMs
|
|
1844
1762
|
): Promise<any> {
|
|
1845
1763
|
const untypedMessage = message as any;
|
|
@@ -1871,66 +1789,6 @@ export class DefaultSocket implements Socket {
|
|
|
1871
1789
|
});
|
|
1872
1790
|
}
|
|
1873
1791
|
|
|
1874
|
-
getRTCPeerConnection(): RTCPeerConnection {
|
|
1875
|
-
return this.adapter.getRTCPeerConnection();
|
|
1876
|
-
}
|
|
1877
|
-
|
|
1878
|
-
async startCall(
|
|
1879
|
-
localVideoRef: any,
|
|
1880
|
-
remoteVideoRef: any,
|
|
1881
|
-
grant_permissions: { video: boolean; audio: boolean }
|
|
1882
|
-
): Promise<void> {
|
|
1883
|
-
// setup peer connection
|
|
1884
|
-
this.adapter.getRTCPeerConnection().onicecandidate = (event: any) => {
|
|
1885
|
-
if (event && event.candidate) {
|
|
1886
|
-
this.sendICECandidateInit({ candidate: event?.candidate });
|
|
1887
|
-
}
|
|
1888
|
-
};
|
|
1889
|
-
|
|
1890
|
-
this.adapter.getRTCPeerConnection().ontrack = (event) => {
|
|
1891
|
-
// Display remote stream in remote video element
|
|
1892
|
-
if (remoteVideoRef) {
|
|
1893
|
-
remoteVideoRef.srcObject = event.streams[0];
|
|
1894
|
-
}
|
|
1895
|
-
};
|
|
1896
|
-
// Get user media
|
|
1897
|
-
const stream = await navigator.mediaDevices.getUserMedia(grant_permissions);
|
|
1898
|
-
if (localVideoRef) {
|
|
1899
|
-
localVideoRef.srcObject = stream;
|
|
1900
|
-
}
|
|
1901
|
-
// Add tracks to PeerConnection
|
|
1902
|
-
stream
|
|
1903
|
-
.getTracks()
|
|
1904
|
-
.forEach((track) =>
|
|
1905
|
-
this.adapter.getRTCPeerConnection()?.addTrack(track, stream)
|
|
1906
|
-
);
|
|
1907
|
-
|
|
1908
|
-
// Create offer and send it to backend via WebSocket
|
|
1909
|
-
const offer = await this.adapter.getRTCPeerConnection().createOffer();
|
|
1910
|
-
await this.adapter.getRTCPeerConnection().setLocalDescription(offer);
|
|
1911
|
-
await this.sendCallRequest({
|
|
1912
|
-
sdp: offer?.sdp,
|
|
1913
|
-
type: "offer",
|
|
1914
|
-
});
|
|
1915
|
-
}
|
|
1916
|
-
|
|
1917
|
-
async sendCallRequest(req: { type: string; sdp?: string }): Promise<void> {
|
|
1918
|
-
return await this.send({ call_request: req });
|
|
1919
|
-
}
|
|
1920
|
-
|
|
1921
|
-
async sendCallAccept(req: { type: string; sdp?: string }): Promise<void> {
|
|
1922
|
-
return await this.send({ call_accept: req });
|
|
1923
|
-
}
|
|
1924
|
-
|
|
1925
|
-
async sendICECandidateInit(req: {
|
|
1926
|
-
candidate: string;
|
|
1927
|
-
sdpMid?: string | undefined;
|
|
1928
|
-
sdpMLineIndex?: number | undefined;
|
|
1929
|
-
usernameFragment?: string | undefined;
|
|
1930
|
-
}): Promise<void> {
|
|
1931
|
-
return await this.send({ ice_candidate_init: req });
|
|
1932
|
-
}
|
|
1933
|
-
|
|
1934
1792
|
async followUsers(userIds: string[]): Promise<Status> {
|
|
1935
1793
|
const response = await this.send({ status_follow: { user_ids: userIds } });
|
|
1936
1794
|
return response.status;
|
|
@@ -2233,6 +2091,25 @@ export class DefaultSocket implements Socket {
|
|
|
2233
2091
|
return response.check_name_existed_event;
|
|
2234
2092
|
}
|
|
2235
2093
|
|
|
2094
|
+
async forwardWebrtcSignaling(receiver_id: string, data_type: number, json_data: string): Promise<WebrtcSignalingFwd> {
|
|
2095
|
+
const response = await this.send({
|
|
2096
|
+
webrtc_signaling_fwd: { receiver_id: receiver_id, data_type: data_type, json_data: json_data },
|
|
2097
|
+
});
|
|
2098
|
+
return response.webrtc_signaling_fwd;
|
|
2099
|
+
}
|
|
2100
|
+
|
|
2101
|
+
async handleMessageButtonClick (
|
|
2102
|
+
message_id: string,
|
|
2103
|
+
channel_id: string,
|
|
2104
|
+
button_id: string,
|
|
2105
|
+
sender_id: string,
|
|
2106
|
+
user_id: string): Promise<MessageButtonClicked> {
|
|
2107
|
+
const response = await this.send({
|
|
2108
|
+
message_button_clicked: { message_id: message_id, channel_id: channel_id, button_id: button_id, sender_id: sender_id, user_id: user_id },
|
|
2109
|
+
});
|
|
2110
|
+
return response.webrtc_signaling_fwd;
|
|
2111
|
+
}
|
|
2112
|
+
|
|
2236
2113
|
private async pingPong(): Promise<void> {
|
|
2237
2114
|
if (!this.adapter.isOpen()) {
|
|
2238
2115
|
return;
|