@dcl/sdk 7.5.8-11016067531.commit-0b941aa → 7.5.8-11033502112.commit-95b8f41
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/network/message-bus-sync.js +17 -11
- package/package.json +6 -6
- package/src/network/message-bus-sync.ts +16 -10
@@ -8,6 +8,7 @@ import { definePlayerHelper } from '../players';
|
|
8
8
|
import { serializeCrdtMessages } from '../internal/transports/logger';
|
9
9
|
// user that we asked for the inital crdt state
|
10
10
|
export function addSyncTransport(engine, sendBinary, getUserData) {
|
11
|
+
const DEBUG_NETWORK_MESSAGES = () => globalThis.DEBUG_NETWORK_MESSAGES ?? true;
|
11
12
|
// Profile Info
|
12
13
|
const myProfile = {};
|
13
14
|
fetchProfile(myProfile, getUserData);
|
@@ -21,17 +22,20 @@ export function addSyncTransport(engine, sendBinary, getUserData) {
|
|
21
22
|
pendingMessageBusMessagesToSend.length = 0;
|
22
23
|
return messages;
|
23
24
|
}
|
25
|
+
let transportInitialzed = false;
|
24
26
|
// Add Sync Transport
|
25
27
|
const transport = {
|
26
28
|
filter: syncFilter(engine),
|
27
29
|
send: async (message) => {
|
28
|
-
if (message.byteLength) {
|
29
|
-
|
30
|
+
if (message.byteLength && transportInitialzed) {
|
31
|
+
DEBUG_NETWORK_MESSAGES() &&
|
32
|
+
console.log(...Array.from(serializeCrdtMessages('[NetworkMessage sent]:', message, engine)));
|
30
33
|
binaryMessageBus.emit(CommsMessage.CRDT, message);
|
31
34
|
}
|
32
35
|
const messages = getMessagesToSend();
|
33
36
|
const response = await sendBinary({ data: messages });
|
34
37
|
binaryMessageBus.__processMessages(response.data);
|
38
|
+
transportInitialzed = true;
|
35
39
|
},
|
36
40
|
type: 'network'
|
37
41
|
};
|
@@ -42,10 +46,11 @@ export function addSyncTransport(engine, sendBinary, getUserData) {
|
|
42
46
|
const { sender, data } = decodeCRDTState(value);
|
43
47
|
if (sender !== myProfile.userId)
|
44
48
|
return;
|
45
|
-
console.log('[Processing CRDT State]', data.byteLength);
|
49
|
+
DEBUG_NETWORK_MESSAGES() && console.log('[Processing CRDT State]', data.byteLength);
|
46
50
|
transport.onmessage(data);
|
47
51
|
});
|
48
|
-
binaryMessageBus.on(CommsMessage.REQ_CRDT_STATE, (
|
52
|
+
binaryMessageBus.on(CommsMessage.REQ_CRDT_STATE, (message, userId) => {
|
53
|
+
transport.onmessage(message);
|
49
54
|
binaryMessageBus.emit(CommsMessage.RES_CRDT_STATE, encodeCRDTState(userId, engineToCrdt(engine)));
|
50
55
|
});
|
51
56
|
const players = definePlayerHelper(engine);
|
@@ -53,20 +58,20 @@ export function addSyncTransport(engine, sendBinary, getUserData) {
|
|
53
58
|
players.onEnterScene((player) => {
|
54
59
|
if (player.userId === myProfile.userId && !requestCrdtStateWhenConnected) {
|
55
60
|
if (RealmInfo.getOrNull(engine.RootEntity)?.isConnectedSceneRoom) {
|
56
|
-
console.log('Requesting state');
|
57
|
-
binaryMessageBus.emit(CommsMessage.REQ_CRDT_STATE,
|
61
|
+
DEBUG_NETWORK_MESSAGES() && console.log('Requesting state');
|
62
|
+
binaryMessageBus.emit(CommsMessage.REQ_CRDT_STATE, engineToCrdt(engine));
|
58
63
|
}
|
59
64
|
else {
|
60
|
-
console.log('Waiting to be conneted');
|
65
|
+
DEBUG_NETWORK_MESSAGES() && console.log('Waiting to be conneted');
|
61
66
|
requestCrdtStateWhenConnected = true;
|
62
67
|
}
|
63
68
|
}
|
64
69
|
});
|
65
70
|
RealmInfo.onChange(engine.RootEntity, (value) => {
|
66
71
|
if (value?.isConnectedSceneRoom && requestCrdtStateWhenConnected) {
|
67
|
-
console.log('Requesting state.');
|
72
|
+
DEBUG_NETWORK_MESSAGES() && console.log('Requesting state.');
|
68
73
|
requestCrdtStateWhenConnected = false;
|
69
|
-
binaryMessageBus.emit(CommsMessage.REQ_CRDT_STATE,
|
74
|
+
binaryMessageBus.emit(CommsMessage.REQ_CRDT_STATE, engineToCrdt(engine));
|
70
75
|
}
|
71
76
|
});
|
72
77
|
players.onLeaveScene((userId) => {
|
@@ -76,7 +81,8 @@ export function addSyncTransport(engine, sendBinary, getUserData) {
|
|
76
81
|
});
|
77
82
|
// Process CRDT messages here
|
78
83
|
binaryMessageBus.on(CommsMessage.CRDT, (value) => {
|
79
|
-
|
84
|
+
DEBUG_NETWORK_MESSAGES() &&
|
85
|
+
console.log(Array.from(serializeCrdtMessages('[NetworkMessage received]:', value, engine)));
|
80
86
|
transport.onmessage(value);
|
81
87
|
});
|
82
88
|
return {
|
@@ -113,4 +119,4 @@ function encodeCRDTState(address, data) {
|
|
113
119
|
serializedMessage.set(data, addressBuffer.byteLength + 1);
|
114
120
|
return serializedMessage;
|
115
121
|
}
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1idXMtc3luYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9uZXR3b3JrL21lc3NhZ2UtYnVzLXN5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFHeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUNyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3RDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUV4QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFHckUsK0NBQStDO0FBQy9DLE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsTUFBZSxFQUNmLFVBQW1FLEVBQ25FLFdBQXdFO0lBRXhFLGVBQWU7SUFDZixNQUFNLFNBQVMsR0FBYSxFQUFjLENBQUE7SUFDMUMsWUFBWSxDQUFDLFNBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQTtJQUVyQyxlQUFlO0lBQ2YsTUFBTSxpQkFBaUIsR0FBRyxXQUFXLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBRXhELG1FQUFtRTtJQUNuRSxNQUFNLCtCQUErQixHQUFpQixFQUFFLENBQUE7SUFDeEQsTUFBTSxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsK0JBQStCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFFckcsU0FBUyxpQkFBaUI7UUFDeEIsTUFBTSxRQUFR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WSxDQUFBO0lBQ3RCLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUE7SUFFaEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUE7QUFDaEMsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLE9BQWUsRUFBRSxJQUFnQjtJQUN4RCx3QkFBd0I7SUFDeEIsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQzNDLE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQTtJQUN2QixNQUFNLGFBQWEsR0FBRyxhQUFhLEdBQUcsYUFBYSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFBO0lBRWhGLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUE7SUFDdkQsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDcEUsaUJBQWlCLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUN2QyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFDekQsT0FBTyxpQkFBaUIsQ0FBQTtBQUMxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUVuZ2luZSwgVHJhbnNwb3J0LCBSZWFsbUluZm8gfSBmcm9tICdAZGNsL2VjcydcbmltcG9ydCB7IHR5cGUgU2VuZEJpbmFyeVJlcXVlc3QsIHR5cGUgU2VuZEJpbmFyeVJlc3BvbnNlIH0gZnJvbSAnfnN5c3RlbS9Db21tdW5pY2F0aW9uc0NvbnRyb2xsZXInXG5cbmltcG9ydCB7IHN5bmNGaWx0ZXIgfSBmcm9tICcuL2ZpbHRlcidcbmltcG9ydCB7IGVuZ2luZVRvQ3JkdCB9IGZyb20gJy4vc3RhdGUnXG5pbXBvcnQgeyBCaW5hcnlNZXNzYWdlQnVzLCBDb21tc01lc3NhZ2UsIGRlY29kZVN0cmluZywgZW5jb2RlU3RyaW5nIH0gZnJvbSAnLi9iaW5hcnktbWVzc2FnZS1idXMnXG5pbXBvcnQgeyBmZXRjaFByb2ZpbGUgfSBmcm9tICcuL3V0aWxzJ1xuaW1wb3J0IHsgZW50aXR5VXRpbHMgfSBmcm9tICcuL2VudGl0aWVzJ1xuaW1wb3J0IHsgR2V0VXNlckRhdGFSZXF1ZXN0LCBHZXRVc2VyRGF0YVJlc3BvbnNlIH0gZnJvbSAnfnN5c3RlbS9Vc2VySWRlbnRpdHknXG5pbXBvcnQgeyBkZWZpbmVQbGF5ZXJIZWxwZXIgfSBmcm9tICcuLi9wbGF5ZXJzJ1xuaW1wb3J0IHsgc2VyaWFsaXplQ3JkdE1lc3NhZ2VzIH0gZnJvbSAnLi4vaW50ZXJuYWwvdHJhbnNwb3J0cy9sb2dnZXInXG5cbmV4cG9ydCB0eXBlIElQcm9maWxlID0geyBuZXR3b3JrSWQ6IG51bWJlcjsgdXNlcklkOiBzdHJpbmcgfVxuLy8gdXNlciB0aGF0IHdlIGFza2VkIGZvciB0aGUgaW5pdGFsIGNyZHQgc3RhdGVcbmV4cG9ydCBmdW5jdGlvbiBhZGRTeW5jVHJhbnNwb3J0KFxuICBlbmdpbmU6IElFbmdpbmUsXG4gIHNlbmRCaW5hcnk6IChtc2c6IFNlbmRCaW5hcnlSZXF1ZXN0KSA9PiBQcm9taXNlPFNlbmRCaW5hcnlSZXNwb25zZT4sXG4gIGdldFVzZXJEYXRhOiAodmFsdWU6IEdldFVzZXJEYXRhUmVxdWVzdCkgPT4gUHJvbWlzZTxHZXRVc2VyRGF0YVJlc3BvbnNlPlxuKSB7XG4gIC8vIFByb2ZpbGUgSW5mb1xuICBjb25zdCBteVByb2ZpbGU6IElQcm9maWxlID0ge30gYXMgSVByb2ZpbGVcbiAgZmV0Y2hQcm9maWxlKG15UHJvZmlsZSEsIGdldFVzZXJEYXRhKVxuXG4gIC8vIEVudGl0eSB1dGlsc1xuICBjb25zdCBlbnRpdHlEZWZpbml0aW9ucyA9IGVudGl0eVV0aWxzKGVuZ2luZSwgbXlQcm9maWxlKVxuXG4gIC8vIExpc3Qgb2YgTWVzc2FnZUJ1c3MgbWVzc3NhZ2VzIHRvIGJlIHNlbnQgb24gZXZlcnkgZnJhbWUgdG8gY29tbXNcbiAgY29uc3QgcGVuZGluZ01lc3NhZ2VCdXNNZXNzYWdlc1RvU2VuZDogVWludDhBcnJheVtdID0gW11cbiAgY29uc3QgYmluYXJ5TWVzc2FnZUJ1cyA9IEJpbmFyeU1lc3NhZ2VCdXMoKG1lc3NhZ2UpID0+IHBlbmRpbmdNZXNzYWdlQnVzTWVzc2FnZXNUb1NlbmQucHVzaChtZXNzYWdlKSlcblxuICBmdW5jdGlvbiBnZXRNZXNzYWdlc1RvU2VuZCgpIHtcbiAgICBjb25zdCBtZXNzYWdlcyA9IFsuLi5wZW5kaW5nTWVzc2FnZUJ1c01lc3NhZ2VzVG9TZW5kXVxuICAgIHBlbmRpbmdNZXNzYWdlQnVzTWVzc2FnZXNUb1NlbmQubGVuZ3RoID0gMFxuICAgIHJldHVybiBtZXNzYWdlc1xuICB9XG5cbiAgLy8gQWRkIFN5bmMgVHJhbnNwb3J0XG4gIGNvbnN0IHRyYW5zcG9ydDogVHJhbnNwb3J0ID0ge1xuICAgIGZpbHRlcjogc3luY0ZpbHRlcihlbmdpbmUpLFxuICAgIHNlbmQ6IGFzeW5jIChtZXNzYWdlOiBVaW50OEFycmF5KSA9PiB7XG4gICAgICBpZiAobWVzc2FnZS5ieXRlTGVuZ3RoKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKEFycmF5LmZyb20oc2VyaWFsaXplQ3JkdE1lc3NhZ2VzKCdbc2VuZCBDUkRUXTogJywgbWVzc2FnZSwgZW5naW5lKSkpXG4gICAgICAgIGJpbmFyeU1lc3NhZ2VCdXMuZW1pdChDb21tc01lc3NhZ2UuQ1JEVCwgbWVzc2FnZSlcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1lc3NhZ2VzID0gZ2V0TWVzc2FnZXNUb1NlbmQoKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZW5kQmluYXJ5KHsgZGF0YTogbWVzc2FnZXMgfSlcbiAgICAgIGJpbmFyeU1lc3NhZ2VCdXMuX19wcm9jZXNzTWVzc2FnZXMocmVzcG9uc2UuZGF0YSlcbiAgICB9LFxuICAgIHR5cGU6ICduZXR3b3JrJ1xuICB9XG4gIGVuZ2luZS5hZGRUcmFuc3BvcnQodHJhbnNwb3J0KVxuICAvLyBFbmQgYWRkIHN5bmMgdHJhbnNwb3J0XG5cbiAgLy8gSWYgd2UgZG9udCBoYXZlIGFueSBzdGF0ZSBpbml0aWFsaXplZCwgYW5kIHJlY2lldmUgYSBzdGF0ZSBtZXNzYWdlLlxuICBiaW5hcnlNZXNzYWdlQnVzLm9uKENvbW1zTWVzc2FnZS5SRVNfQ1JEVF9TVEFURSwgKHZhbHVlKSA9PiB7XG4gICAgY29uc3QgeyBzZW5kZXIsIGRhdGEgfSA9IGRlY29kZUNSRFRTdGF0ZSh2YWx1ZSlcbiAgICBpZiAoc2VuZGVyICE9PSBteVByb2ZpbGUudXNlcklkKSByZXR1cm5cbiAgICBjb25zb2xlLmxvZygnW1Byb2Nlc3NpbmcgQ1JEVCBTdGF0ZV0nLCBkYXRhLmJ5dGVMZW5ndGgpXG4gICAgdHJhbnNwb3J0Lm9ubWVzc2FnZSEoZGF0YSlcbiAgfSlcblxuICBiaW5hcnlNZXNzYWdlQnVzLm9uKENvbW1zTWVzc2FnZS5SRVFfQ1JEVF9TVEFURSwgKF8sIHVzZXJJZCkgPT4ge1xuICAgIGJpbmFyeU1lc3NhZ2VCdXMuZW1pdChDb21tc01lc3NhZ2UuUkVTX0NSRFRfU1RBVEUsIGVuY29kZUNSRFRTdGF0ZSh1c2VySWQsIGVuZ2luZVRvQ3JkdChlbmdpbmUpKSlcbiAgfSlcblxuICBjb25zdCBwbGF5ZXJzID0gZGVmaW5lUGxheWVySGVscGVyKGVuZ2luZSlcblxuICBsZXQgcmVxdWVzdENyZHRTdGF0ZVdoZW5Db25uZWN0ZWQgPSBmYWxzZVxuXG4gIHBsYXllcnMub25FbnRlclNjZW5lKChwbGF5ZXIpID0+IHtcbiAgICBpZiAocGxheWVyLnVzZXJJZCA9PT0gbXlQcm9maWxlLnVzZXJJZCAmJiAhcmVxdWVzdENyZHRTdGF0ZVdoZW5Db25uZWN0ZWQpIHtcbiAgICAgIGlmIChSZWFsbUluZm8uZ2V0T3JOdWxsKGVuZ2luZS5Sb290RW50aXR5KT8uaXNDb25uZWN0ZWRTY2VuZVJvb20pIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1JlcXVlc3Rpbmcgc3RhdGUnKVxuICAgICAgICBiaW5hcnlNZXNzYWdlQnVzLmVtaXQoQ29tbXNNZXNzYWdlLlJFUV9DUkRUX1NUQVRFLCBuZXcgVWludDhBcnJheSgpKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1dhaXRpbmcgdG8gYmUgY29ubmV0ZWQnKVxuICAgICAgICByZXF1ZXN0Q3JkdFN0YXRlV2hlbkNvbm5lY3RlZCA9IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH0pXG5cbiAgUmVhbG1JbmZvLm9uQ2hhbmdlKGVuZ2luZS5Sb290RW50aXR5LCAodmFsdWUpID0+IHtcbiAgICBpZiAodmFsdWU/LmlzQ29ubmVjdGVkU2NlbmVSb29tICYmIHJlcXVlc3RDcmR0U3RhdGVXaGVuQ29ubmVjdGVkKSB7XG4gICAgICBjb25zb2xlLmxvZygnUmVxdWVzdGluZyBzdGF0ZS4nKVxuICAgICAgcmVxdWVzdENyZHRTdGF0ZVdoZW5Db25uZWN0ZWQgPSBmYWxzZVxuICAgICAgYmluYXJ5TWVzc2FnZUJ1cy5lbWl0KENvbW1zTWVzc2FnZS5SRVFfQ1JEVF9TVEFURSwgbmV3IFVpbnQ4QXJyYXkoKSlcbiAgICB9XG4gIH0pXG5cbiAgcGxheWVycy5vbkxlYXZlU2NlbmUoKHVzZXJJZCkgPT4ge1xuICAgIGlmICh1c2VySWQgPT09IG15UHJvZmlsZS51c2VySWQpIHtcbiAgICAgIHJlcXVlc3RDcmR0U3RhdGVXaGVuQ29ubmVjdGVkID0gZmFsc2VcbiAgICB9XG4gIH0pXG5cbiAgLy8gUHJvY2VzcyBDUkRUIG1lc3NhZ2VzIGhlcmVcbiAgYmluYXJ5TWVzc2FnZUJ1cy5vbihDb21tc01lc3NhZ2UuQ1JEVCwgKHZhbHVlKSA9PiB7XG4gICAgY29uc29sZS5sb2coQXJyYXkuZnJvbShzZXJpYWxpemVDcmR0TWVzc2FnZXMoJ1tOZXR3b3JrTWVzc2FnZV0nLCB2YWx1ZSwgZW5naW5lKSkpXG4gICAgdHJhbnNwb3J0Lm9ubWVzc2FnZSEodmFsdWUpXG4gIH0pXG5cbiAgcmV0dXJuIHtcbiAgICAuLi5lbnRpdHlEZWZpbml0aW9ucyxcbiAgICBteVByb2ZpbGVcbiAgfVxufVxuXG4vKipcbiAqIE1lc3NhZ2VzIFByb3RvY29sIEVuY29kaW5nXG4gKlxuICogQ1JEVDogUGxhaW4gVWludDhBcnJheVxuICpcbiAqIENSRFRfU1RBVEVfUkVTIHsgc2VuZGVyOiBzdHJpbmcsIGRhdGE6IFVpbnQ4QXJyYXl9XG4gKi9cbmZ1bmN0aW9uIGRlY29kZUNSRFRTdGF0ZShkYXRhOiBVaW50OEFycmF5KSB7XG4gIGxldCBvZmZzZXQgPSAwXG4gIGNvbnN0IHIgPSBuZXcgVWludDhBcnJheShkYXRhKVxuICBjb25zdCB2aWV3ID0gbmV3IERhdGFWaWV3KHIuYnVmZmVyKVxuICBjb25zdCBzZW5kZXJMZW5ndGggPSB2aWV3LmdldFVpbnQ4KG9mZnNldClcbiAgb2Zmc2V0ICs9IDFcbiAgY29uc3Qgc2VuZGVyID0gZGVjb2RlU3RyaW5nKGRhdGEuc3ViYXJyYXkoMSwgc2VuZGVyTGVuZ3RoICsgMSkpXG4gIG9mZnNldCArPSBzZW5kZXJMZW5ndGhcbiAgY29uc3Qgc3RhdGUgPSByLnN1YmFycmF5KG9mZnNldClcblxuICByZXR1cm4geyBzZW5kZXIsIGRhdGE6IHN0YXRlIH1cbn1cblxuZnVuY3Rpb24gZW5jb2RlQ1JEVFN0YXRlKGFkZHJlc3M6IHN0cmluZywgZGF0YTogVWludDhBcnJheSkge1xuICAvLyBhZGRyZXNzIHRvIHVpbnQ4YXJyYXlcbiAgY29uc3QgYWRkcmVzc0J1ZmZlciA9IGVuY29kZVN0cmluZyhhZGRyZXNzKVxuICBjb25zdCBhZGRyZXNzT2Zmc2V0ID0gMVxuICBjb25zdCBtZXNzYWdlTGVuZ3RoID0gYWRkcmVzc09mZnNldCArIGFkZHJlc3NCdWZmZXIuYnl0ZUxlbmd0aCArIGRhdGEuYnl0ZUxlbmd0aFxuXG4gIGNvbnN0IHNlcmlhbGl6ZWRNZXNzYWdlID0gbmV3IFVpbnQ4QXJyYXkobWVzc2FnZUxlbmd0aClcbiAgc2VyaWFsaXplZE1lc3NhZ2Uuc2V0KG5ldyBVaW50OEFycmF5KFthZGRyZXNzQnVmZmVyLmJ5dGVMZW5ndGhdKSwgMClcbiAgc2VyaWFsaXplZE1lc3NhZ2Uuc2V0KGFkZHJlc3NCdWZmZXIsIDEpXG4gIHNlcmlhbGl6ZWRNZXNzYWdlLnNldChkYXRhLCBhZGRyZXNzQnVmZmVyLmJ5dGVMZW5ndGggKyAxKVxuICByZXR1cm4gc2VyaWFsaXplZE1lc3NhZ2Vcbn1cbiJdfQ==
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1idXMtc3luYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9uZXR3b3JrL21lc3NhZ2UtYnVzLXN5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFHeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUNyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3RDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUV4QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFHckUsK0NBQStDO0FBQy9DLE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsTUFBZSxFQUNmLFVBQW1FLEVBQ25FLFdBQXdFO0lBRXhFLE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxFQUFFLENBQUUsVUFBa0IsQ0FBQyxzQkFBc0IsSUFBSSxJQUFJLENBQUE7SUFDdkYsZUFBZTtJQUNmLE1BQU0sU0FBUyxHQUFhLEVBQWMsQ0FBQTtJQUMxQyxZQUFZLENBQUMsU0FBVSxFQUFFLFdBQVcsQ0FBQyxDQUFBO0lBRXJDLGVBQWU7SUFDZixNQUFNLGlCQUFpQixHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFFeEQsbUVBQW1FO0lBQ25FLE1BQU0sK0JBQStCLEdBQWlCLEVBQUUsQ0FBQTtJQUN4RCxNQUFNLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQywrQkFB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QUUsQ0FBQyxDQUFDLENBQUE7SUFDdkMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQ3pELE9BQU8saUJBQWlCLENBQUE7QUFDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElFbmdpbmUsIFRyYW5zcG9ydCwgUmVhbG1JbmZvIH0gZnJvbSAnQGRjbC9lY3MnXG5pbXBvcnQgeyB0eXBlIFNlbmRCaW5hcnlSZXF1ZXN0LCB0eXBlIFNlbmRCaW5hcnlSZXNwb25zZSB9IGZyb20gJ35zeXN0ZW0vQ29tbXVuaWNhdGlvbnNDb250cm9sbGVyJ1xuXG5pbXBvcnQgeyBzeW5jRmlsdGVyIH0gZnJvbSAnLi9maWx0ZXInXG5pbXBvcnQgeyBlbmdpbmVUb0NyZHQgfSBmcm9tICcuL3N0YXRlJ1xuaW1wb3J0IHsgQmluYXJ5TWVzc2FnZUJ1cywgQ29tbXNNZXNzYWdlLCBkZWNvZGVTdHJpbmcsIGVuY29kZVN0cmluZyB9IGZyb20gJy4vYmluYXJ5LW1lc3NhZ2UtYnVzJ1xuaW1wb3J0IHsgZmV0Y2hQcm9maWxlIH0gZnJvbSAnLi91dGlscydcbmltcG9ydCB7IGVudGl0eVV0aWxzIH0gZnJvbSAnLi9lbnRpdGllcydcbmltcG9ydCB7IEdldFVzZXJEYXRhUmVxdWVzdCwgR2V0VXNlckRhdGFSZXNwb25zZSB9IGZyb20gJ35zeXN0ZW0vVXNlcklkZW50aXR5J1xuaW1wb3J0IHsgZGVmaW5lUGxheWVySGVscGVyIH0gZnJvbSAnLi4vcGxheWVycydcbmltcG9ydCB7IHNlcmlhbGl6ZUNyZHRNZXNzYWdlcyB9IGZyb20gJy4uL2ludGVybmFsL3RyYW5zcG9ydHMvbG9nZ2VyJ1xuXG5leHBvcnQgdHlwZSBJUHJvZmlsZSA9IHsgbmV0d29ya0lkOiBudW1iZXI7IHVzZXJJZDogc3RyaW5nIH1cbi8vIHVzZXIgdGhhdCB3ZSBhc2tlZCBmb3IgdGhlIGluaXRhbCBjcmR0IHN0YXRlXG5leHBvcnQgZnVuY3Rpb24gYWRkU3luY1RyYW5zcG9ydChcbiAgZW5naW5lOiBJRW5naW5lLFxuICBzZW5kQmluYXJ5OiAobXNnOiBTZW5kQmluYXJ5UmVxdWVzdCkgPT4gUHJvbWlzZTxTZW5kQmluYXJ5UmVzcG9uc2U+LFxuICBnZXRVc2VyRGF0YTogKHZhbHVlOiBHZXRVc2VyRGF0YVJlcXVlc3QpID0+IFByb21pc2U8R2V0VXNlckRhdGFSZXNwb25zZT5cbikge1xuICBjb25zdCBERUJVR19ORVRXT1JLX01FU1NBR0VTID0gKCkgPT4gKGdsb2JhbFRoaXMgYXMgYW55KS5ERUJVR19ORVRXT1JLX01FU1NBR0VTID8/IHRydWVcbiAgLy8gUHJvZmlsZSBJbmZvXG4gIGNvbnN0IG15UHJvZmlsZTogSVByb2ZpbGUgPSB7fSBhcyBJUHJvZmlsZVxuICBmZXRjaFByb2ZpbGUobXlQcm9maWxlISwgZ2V0VXNlckRhdGEpXG5cbiAgLy8gRW50aXR5IHV0aWxzXG4gIGNvbnN0IGVudGl0eURlZmluaXRpb25zID0gZW50aXR5VXRpbHMoZW5naW5lLCBteVByb2ZpbGUpXG5cbiAgLy8gTGlzdCBvZiBNZXNzYWdlQnVzcyBtZXNzc2FnZXMgdG8gYmUgc2VudCBvbiBldmVyeSBmcmFtZSB0byBjb21tc1xuICBjb25zdCBwZW5kaW5nTWVzc2FnZUJ1c01lc3NhZ2VzVG9TZW5kOiBVaW50OEFycmF5W10gPSBbXVxuICBjb25zdCBiaW5hcnlNZXNzYWdlQnVzID0gQmluYXJ5TWVzc2FnZUJ1cygobWVzc2FnZSkgPT4gcGVuZGluZ01lc3NhZ2VCdXNNZXNzYWdlc1RvU2VuZC5wdXNoKG1lc3NhZ2UpKVxuXG4gIGZ1bmN0aW9uIGdldE1lc3NhZ2VzVG9TZW5kKCkge1xuICAgIGNvbnN0IG1lc3NhZ2VzID0gWy4uLnBlbmRpbmdNZXNzYWdlQnVzTWVzc2FnZXNUb1NlbmRdXG4gICAgcGVuZGluZ01lc3NhZ2VCdXNNZXNzYWdlc1RvU2VuZC5sZW5ndGggPSAwXG4gICAgcmV0dXJuIG1lc3NhZ2VzXG4gIH1cblxuICBsZXQgdHJhbnNwb3J0SW5pdGlhbHplZCA9IGZhbHNlXG4gIC8vIEFkZCBTeW5jIFRyYW5zcG9ydFxuICBjb25zdCB0cmFuc3BvcnQ6IFRyYW5zcG9ydCA9IHtcbiAgICBmaWx0ZXI6IHN5bmNGaWx0ZXIoZW5naW5lKSxcbiAgICBzZW5kOiBhc3luYyAobWVzc2FnZTogVWludDhBcnJheSkgPT4ge1xuICAgICAgaWYgKG1lc3NhZ2UuYnl0ZUxlbmd0aCAmJiB0cmFuc3BvcnRJbml0aWFsemVkKSB7XG4gICAgICAgIERFQlVHX05FVFdPUktfTUVTU0FHRVMoKSAmJlxuICAgICAgICAgIGNvbnNvbGUubG9nKC4uLkFycmF5LmZyb20oc2VyaWFsaXplQ3JkdE1lc3NhZ2VzKCdbTmV0d29ya01lc3NhZ2Ugc2VudF06JywgbWVzc2FnZSwgZW5naW5lKSkpXG4gICAgICAgIGJpbmFyeU1lc3NhZ2VCdXMuZW1pdChDb21tc01lc3NhZ2UuQ1JEVCwgbWVzc2FnZSlcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1lc3NhZ2VzID0gZ2V0TWVzc2FnZXNUb1NlbmQoKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZW5kQmluYXJ5KHsgZGF0YTogbWVzc2FnZXMgfSlcbiAgICAgIGJpbmFyeU1lc3NhZ2VCdXMuX19wcm9jZXNzTWVzc2FnZXMocmVzcG9uc2UuZGF0YSlcbiAgICAgIHRyYW5zcG9ydEluaXRpYWx6ZWQgPSB0cnVlXG4gICAgfSxcbiAgICB0eXBlOiAnbmV0d29yaydcbiAgfVxuICBlbmdpbmUuYWRkVHJhbnNwb3J0KHRyYW5zcG9ydClcbiAgLy8gRW5kIGFkZCBzeW5jIHRyYW5zcG9ydFxuXG4gIC8vIElmIHdlIGRvbnQgaGF2ZSBhbnkgc3RhdGUgaW5pdGlhbGl6ZWQsIGFuZCByZWNpZXZlIGEgc3RhdGUgbWVzc2FnZS5cbiAgYmluYXJ5TWVzc2FnZUJ1cy5vbihDb21tc01lc3NhZ2UuUkVTX0NSRFRfU1RBVEUsICh2YWx1ZSkgPT4ge1xuICAgIGNvbnN0IHsgc2VuZGVyLCBkYXRhIH0gPSBkZWNvZGVDUkRUU3RhdGUodmFsdWUpXG4gICAgaWYgKHNlbmRlciAhPT0gbXlQcm9maWxlLnVzZXJJZCkgcmV0dXJuXG4gICAgREVCVUdfTkVUV09SS19NRVNTQUdFUygpICYmIGNvbnNvbGUubG9nKCdbUHJvY2Vzc2luZyBDUkRUIFN0YXRlXScsIGRhdGEuYnl0ZUxlbmd0aClcbiAgICB0cmFuc3BvcnQub25tZXNzYWdlIShkYXRhKVxuICB9KVxuXG4gIGJpbmFyeU1lc3NhZ2VCdXMub24oQ29tbXNNZXNzYWdlLlJFUV9DUkRUX1NUQVRFLCAobWVzc2FnZSwgdXNlcklkKSA9PiB7XG4gICAgdHJhbnNwb3J0Lm9ubWVzc2FnZSEobWVzc2FnZSlcbiAgICBiaW5hcnlNZXNzYWdlQnVzLmVtaXQoQ29tbXNNZXNzYWdlLlJFU19DUkRUX1NUQVRFLCBlbmNvZGVDUkRUU3RhdGUodXNlcklkLCBlbmdpbmVUb0NyZHQoZW5naW5lKSkpXG4gIH0pXG5cbiAgY29uc3QgcGxheWVycyA9IGRlZmluZVBsYXllckhlbHBlcihlbmdpbmUpXG5cbiAgbGV0IHJlcXVlc3RDcmR0U3RhdGVXaGVuQ29ubmVjdGVkID0gZmFsc2VcblxuICBwbGF5ZXJzLm9uRW50ZXJTY2VuZSgocGxheWVyKSA9PiB7XG4gICAgaWYgKHBsYXllci51c2VySWQgPT09IG15UHJvZmlsZS51c2VySWQgJiYgIXJlcXVlc3RDcmR0U3RhdGVXaGVuQ29ubmVjdGVkKSB7XG4gICAgICBpZiAoUmVhbG1JbmZvLmdldE9yTnVsbChlbmdpbmUuUm9vdEVudGl0eSk/LmlzQ29ubmVjdGVkU2NlbmVSb29tKSB7XG4gICAgICAgIERFQlVHX05FVFdPUktfTUVTU0FHRVMoKSAmJiBjb25zb2xlLmxvZygnUmVxdWVzdGluZyBzdGF0ZScpXG4gICAgICAgIGJpbmFyeU1lc3NhZ2VCdXMuZW1pdChDb21tc01lc3NhZ2UuUkVRX0NSRFRfU1RBVEUsIGVuZ2luZVRvQ3JkdChlbmdpbmUpKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgREVCVUdfTkVUV09SS19NRVNTQUdFUygpICYmIGNvbnNvbGUubG9nKCdXYWl0aW5nIHRvIGJlIGNvbm5ldGVkJylcbiAgICAgICAgcmVxdWVzdENyZHRTdGF0ZVdoZW5Db25uZWN0ZWQgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIFJlYWxtSW5mby5vbkNoYW5nZShlbmdpbmUuUm9vdEVudGl0eSwgKHZhbHVlKSA9PiB7XG4gICAgaWYgKHZhbHVlPy5pc0Nvbm5lY3RlZFNjZW5lUm9vbSAmJiByZXF1ZXN0Q3JkdFN0YXRlV2hlbkNvbm5lY3RlZCkge1xuICAgICAgREVCVUdfTkVUV09SS19NRVNTQUdFUygpICYmIGNvbnNvbGUubG9nKCdSZXF1ZXN0aW5nIHN0YXRlLicpXG4gICAgICByZXF1ZXN0Q3JkdFN0YXRlV2hlbkNvbm5lY3RlZCA9IGZhbHNlXG4gICAgICBiaW5hcnlNZXNzYWdlQnVzLmVtaXQoQ29tbXNNZXNzYWdlLlJFUV9DUkRUX1NUQVRFLCBlbmdpbmVUb0NyZHQoZW5naW5lKSlcbiAgICB9XG4gIH0pXG5cbiAgcGxheWVycy5vbkxlYXZlU2NlbmUoKHVzZXJJZCkgPT4ge1xuICAgIGlmICh1c2VySWQgPT09IG15UHJvZmlsZS51c2VySWQpIHtcbiAgICAgIHJlcXVlc3RDcmR0U3RhdGVXaGVuQ29ubmVjdGVkID0gZmFsc2VcbiAgICB9XG4gIH0pXG5cbiAgLy8gUHJvY2VzcyBDUkRUIG1lc3NhZ2VzIGhlcmVcbiAgYmluYXJ5TWVzc2FnZUJ1cy5vbihDb21tc01lc3NhZ2UuQ1JEVCwgKHZhbHVlKSA9PiB7XG4gICAgREVCVUdfTkVUV09SS19NRVNTQUdFUygpICYmXG4gICAgICBjb25zb2xlLmxvZyhBcnJheS5mcm9tKHNlcmlhbGl6ZUNyZHRNZXNzYWdlcygnW05ldHdvcmtNZXNzYWdlIHJlY2VpdmVkXTonLCB2YWx1ZSwgZW5naW5lKSkpXG4gICAgdHJhbnNwb3J0Lm9ubWVzc2FnZSEodmFsdWUpXG4gIH0pXG5cbiAgcmV0dXJuIHtcbiAgICAuLi5lbnRpdHlEZWZpbml0aW9ucyxcbiAgICBteVByb2ZpbGVcbiAgfVxufVxuXG4vKipcbiAqIE1lc3NhZ2VzIFByb3RvY29sIEVuY29kaW5nXG4gKlxuICogQ1JEVDogUGxhaW4gVWludDhBcnJheVxuICpcbiAqIENSRFRfU1RBVEVfUkVTIHsgc2VuZGVyOiBzdHJpbmcsIGRhdGE6IFVpbnQ4QXJyYXl9XG4gKi9cbmZ1bmN0aW9uIGRlY29kZUNSRFRTdGF0ZShkYXRhOiBVaW50OEFycmF5KSB7XG4gIGxldCBvZmZzZXQgPSAwXG4gIGNvbnN0IHIgPSBuZXcgVWludDhBcnJheShkYXRhKVxuICBjb25zdCB2aWV3ID0gbmV3IERhdGFWaWV3KHIuYnVmZmVyKVxuICBjb25zdCBzZW5kZXJMZW5ndGggPSB2aWV3LmdldFVpbnQ4KG9mZnNldClcbiAgb2Zmc2V0ICs9IDFcbiAgY29uc3Qgc2VuZGVyID0gZGVjb2RlU3RyaW5nKGRhdGEuc3ViYXJyYXkoMSwgc2VuZGVyTGVuZ3RoICsgMSkpXG4gIG9mZnNldCArPSBzZW5kZXJMZW5ndGhcbiAgY29uc3Qgc3RhdGUgPSByLnN1YmFycmF5KG9mZnNldClcblxuICByZXR1cm4geyBzZW5kZXIsIGRhdGE6IHN0YXRlIH1cbn1cblxuZnVuY3Rpb24gZW5jb2RlQ1JEVFN0YXRlKGFkZHJlc3M6IHN0cmluZywgZGF0YTogVWludDhBcnJheSkge1xuICAvLyBhZGRyZXNzIHRvIHVpbnQ4YXJyYXlcbiAgY29uc3QgYWRkcmVzc0J1ZmZlciA9IGVuY29kZVN0cmluZyhhZGRyZXNzKVxuICBjb25zdCBhZGRyZXNzT2Zmc2V0ID0gMVxuICBjb25zdCBtZXNzYWdlTGVuZ3RoID0gYWRkcmVzc09mZnNldCArIGFkZHJlc3NCdWZmZXIuYnl0ZUxlbmd0aCArIGRhdGEuYnl0ZUxlbmd0aFxuXG4gIGNvbnN0IHNlcmlhbGl6ZWRNZXNzYWdlID0gbmV3IFVpbnQ4QXJyYXkobWVzc2FnZUxlbmd0aClcbiAgc2VyaWFsaXplZE1lc3NhZ2Uuc2V0KG5ldyBVaW50OEFycmF5KFthZGRyZXNzQnVmZmVyLmJ5dGVMZW5ndGhdKSwgMClcbiAgc2VyaWFsaXplZE1lc3NhZ2Uuc2V0KGFkZHJlc3NCdWZmZXIsIDEpXG4gIHNlcmlhbGl6ZWRNZXNzYWdlLnNldChkYXRhLCBhZGRyZXNzQnVmZmVyLmJ5dGVMZW5ndGggKyAxKVxuICByZXR1cm4gc2VyaWFsaXplZE1lc3NhZ2Vcbn1cbiJdfQ==
|
package/package.json
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
{
|
2
2
|
"name": "@dcl/sdk",
|
3
3
|
"description": "",
|
4
|
-
"version": "7.5.8-
|
4
|
+
"version": "7.5.8-11033502112.commit-95b8f41",
|
5
5
|
"author": "Decentraland",
|
6
6
|
"dependencies": {
|
7
|
-
"@dcl/ecs": "7.5.8-
|
7
|
+
"@dcl/ecs": "7.5.8-11033502112.commit-95b8f41",
|
8
8
|
"@dcl/ecs-math": "2.0.2",
|
9
9
|
"@dcl/explorer": "1.0.164509-20240802172549.commit-fb95b9b",
|
10
|
-
"@dcl/js-runtime": "7.5.8-
|
11
|
-
"@dcl/react-ecs": "7.5.8-
|
12
|
-
"@dcl/sdk-commands": "7.5.8-
|
10
|
+
"@dcl/js-runtime": "7.5.8-11033502112.commit-95b8f41",
|
11
|
+
"@dcl/react-ecs": "7.5.8-11033502112.commit-95b8f41",
|
12
|
+
"@dcl/sdk-commands": "7.5.8-11033502112.commit-95b8f41",
|
13
13
|
"text-encoding": "0.7.0"
|
14
14
|
},
|
15
15
|
"keywords": [],
|
@@ -35,5 +35,5 @@
|
|
35
35
|
},
|
36
36
|
"types": "./index.d.ts",
|
37
37
|
"typings": "./index.d.ts",
|
38
|
-
"commit": "
|
38
|
+
"commit": "95b8f418948408f82dc030ac9dda7bfc055e3207"
|
39
39
|
}
|
@@ -17,6 +17,7 @@ export function addSyncTransport(
|
|
17
17
|
sendBinary: (msg: SendBinaryRequest) => Promise<SendBinaryResponse>,
|
18
18
|
getUserData: (value: GetUserDataRequest) => Promise<GetUserDataResponse>
|
19
19
|
) {
|
20
|
+
const DEBUG_NETWORK_MESSAGES = () => (globalThis as any).DEBUG_NETWORK_MESSAGES ?? true
|
20
21
|
// Profile Info
|
21
22
|
const myProfile: IProfile = {} as IProfile
|
22
23
|
fetchProfile(myProfile!, getUserData)
|
@@ -34,17 +35,20 @@ export function addSyncTransport(
|
|
34
35
|
return messages
|
35
36
|
}
|
36
37
|
|
38
|
+
let transportInitialzed = false
|
37
39
|
// Add Sync Transport
|
38
40
|
const transport: Transport = {
|
39
41
|
filter: syncFilter(engine),
|
40
42
|
send: async (message: Uint8Array) => {
|
41
|
-
if (message.byteLength) {
|
42
|
-
|
43
|
+
if (message.byteLength && transportInitialzed) {
|
44
|
+
DEBUG_NETWORK_MESSAGES() &&
|
45
|
+
console.log(...Array.from(serializeCrdtMessages('[NetworkMessage sent]:', message, engine)))
|
43
46
|
binaryMessageBus.emit(CommsMessage.CRDT, message)
|
44
47
|
}
|
45
48
|
const messages = getMessagesToSend()
|
46
49
|
const response = await sendBinary({ data: messages })
|
47
50
|
binaryMessageBus.__processMessages(response.data)
|
51
|
+
transportInitialzed = true
|
48
52
|
},
|
49
53
|
type: 'network'
|
50
54
|
}
|
@@ -55,11 +59,12 @@ export function addSyncTransport(
|
|
55
59
|
binaryMessageBus.on(CommsMessage.RES_CRDT_STATE, (value) => {
|
56
60
|
const { sender, data } = decodeCRDTState(value)
|
57
61
|
if (sender !== myProfile.userId) return
|
58
|
-
console.log('[Processing CRDT State]', data.byteLength)
|
62
|
+
DEBUG_NETWORK_MESSAGES() && console.log('[Processing CRDT State]', data.byteLength)
|
59
63
|
transport.onmessage!(data)
|
60
64
|
})
|
61
65
|
|
62
|
-
binaryMessageBus.on(CommsMessage.REQ_CRDT_STATE, (
|
66
|
+
binaryMessageBus.on(CommsMessage.REQ_CRDT_STATE, (message, userId) => {
|
67
|
+
transport.onmessage!(message)
|
63
68
|
binaryMessageBus.emit(CommsMessage.RES_CRDT_STATE, encodeCRDTState(userId, engineToCrdt(engine)))
|
64
69
|
})
|
65
70
|
|
@@ -70,10 +75,10 @@ export function addSyncTransport(
|
|
70
75
|
players.onEnterScene((player) => {
|
71
76
|
if (player.userId === myProfile.userId && !requestCrdtStateWhenConnected) {
|
72
77
|
if (RealmInfo.getOrNull(engine.RootEntity)?.isConnectedSceneRoom) {
|
73
|
-
console.log('Requesting state')
|
74
|
-
binaryMessageBus.emit(CommsMessage.REQ_CRDT_STATE,
|
78
|
+
DEBUG_NETWORK_MESSAGES() && console.log('Requesting state')
|
79
|
+
binaryMessageBus.emit(CommsMessage.REQ_CRDT_STATE, engineToCrdt(engine))
|
75
80
|
} else {
|
76
|
-
console.log('Waiting to be conneted')
|
81
|
+
DEBUG_NETWORK_MESSAGES() && console.log('Waiting to be conneted')
|
77
82
|
requestCrdtStateWhenConnected = true
|
78
83
|
}
|
79
84
|
}
|
@@ -81,9 +86,9 @@ export function addSyncTransport(
|
|
81
86
|
|
82
87
|
RealmInfo.onChange(engine.RootEntity, (value) => {
|
83
88
|
if (value?.isConnectedSceneRoom && requestCrdtStateWhenConnected) {
|
84
|
-
console.log('Requesting state.')
|
89
|
+
DEBUG_NETWORK_MESSAGES() && console.log('Requesting state.')
|
85
90
|
requestCrdtStateWhenConnected = false
|
86
|
-
binaryMessageBus.emit(CommsMessage.REQ_CRDT_STATE,
|
91
|
+
binaryMessageBus.emit(CommsMessage.REQ_CRDT_STATE, engineToCrdt(engine))
|
87
92
|
}
|
88
93
|
})
|
89
94
|
|
@@ -95,7 +100,8 @@ export function addSyncTransport(
|
|
95
100
|
|
96
101
|
// Process CRDT messages here
|
97
102
|
binaryMessageBus.on(CommsMessage.CRDT, (value) => {
|
98
|
-
|
103
|
+
DEBUG_NETWORK_MESSAGES() &&
|
104
|
+
console.log(Array.from(serializeCrdtMessages('[NetworkMessage received]:', value, engine)))
|
99
105
|
transport.onmessage!(value)
|
100
106
|
})
|
101
107
|
|