mirror of
https://github.com/zadam/trilium.git
synced 2024-09-20 15:45:58 +08:00
added sync mutex to ping messages
This commit is contained in:
parent
3de124748d
commit
ec7c0f0723
30
package-lock.json
generated
30
package-lock.json
generated
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "trilium",
|
||||
"version": "0.36.0-beta",
|
||||
"version": "0.36.1-beta",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
@ -4968,9 +4968,9 @@
|
|||
}
|
||||
},
|
||||
"file-type": {
|
||||
"version": "12.3.0",
|
||||
"resolved": "https://registry.npmjs.org/file-type/-/file-type-12.3.0.tgz",
|
||||
"integrity": "sha512-4E4Esq9KLwjYCY32E7qSmd0h7LefcniZHX+XcdJ4Wfx1uGJX7QCigiqw/U0yT7WOslm28yhxl87DJ0wHYv0RAA=="
|
||||
"version": "12.3.1",
|
||||
"resolved": "https://registry.npmjs.org/file-type/-/file-type-12.3.1.tgz",
|
||||
"integrity": "sha512-FXxY5h6vSYMjrRal4YqbtfuoKD/oE0AMjJ7E5Hm+BdaQECcFVD03B41RAWYJ7wyuLr/wRnCtFo7y37l+nh+TAA=="
|
||||
},
|
||||
"filename-regex": {
|
||||
"version": "2.0.1",
|
||||
|
@ -6003,9 +6003,9 @@
|
|||
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
|
||||
},
|
||||
"helmet": {
|
||||
"version": "3.21.1",
|
||||
"resolved": "https://registry.npmjs.org/helmet/-/helmet-3.21.1.tgz",
|
||||
"integrity": "sha512-IC/54Lxvvad2YiUdgLmPlNFKLhNuG++waTF5KPYq/Feo3NNhqMFbcLAlbVkai+9q0+4uxjxGPJ9bNykG+3zZNg==",
|
||||
"version": "3.21.2",
|
||||
"resolved": "https://registry.npmjs.org/helmet/-/helmet-3.21.2.tgz",
|
||||
"integrity": "sha512-okUo+MeWgg00cKB8Csblu8EXgcIoDyb5ZS/3u0W4spCimeVuCUvVZ6Vj3O2VJ1Sxpyb8jCDvzu0L1KKT11pkIg==",
|
||||
"requires": {
|
||||
"depd": "2.0.0",
|
||||
"dns-prefetch-control": "0.2.0",
|
||||
|
@ -6014,7 +6014,7 @@
|
|||
"feature-policy": "0.3.0",
|
||||
"frameguard": "3.1.0",
|
||||
"helmet-crossdomain": "0.4.0",
|
||||
"helmet-csp": "2.9.2",
|
||||
"helmet-csp": "2.9.4",
|
||||
"hide-powered-by": "1.1.0",
|
||||
"hpkp": "2.0.0",
|
||||
"hsts": "2.2.0",
|
||||
|
@ -6037,11 +6037,11 @@
|
|||
"integrity": "sha512-AB4DTykRw3HCOxovD1nPR16hllrVImeFp5VBV9/twj66lJ2nU75DP8FPL0/Jp4jj79JhTfG+pFI2MD02kWJ+fA=="
|
||||
},
|
||||
"helmet-csp": {
|
||||
"version": "2.9.2",
|
||||
"resolved": "https://registry.npmjs.org/helmet-csp/-/helmet-csp-2.9.2.tgz",
|
||||
"integrity": "sha512-Lt5WqNfbNjEJ6ysD4UNpVktSyjEKfU9LVJ1LaFmPfYseg/xPealPfgHhtqdAdjPDopp5zbg/VWCyp4cluMIckw==",
|
||||
"version": "2.9.4",
|
||||
"resolved": "https://registry.npmjs.org/helmet-csp/-/helmet-csp-2.9.4.tgz",
|
||||
"integrity": "sha512-qUgGx8+yk7Xl8XFEGI4MFu1oNmulxhQVTlV8HP8tV3tpfslCs30OZz/9uQqsWPvDISiu/NwrrCowsZBhFADYqg==",
|
||||
"requires": {
|
||||
"bowser": "^2.6.1",
|
||||
"bowser": "^2.7.0",
|
||||
"camelize": "1.0.0",
|
||||
"content-security-policy-builder": "2.1.0",
|
||||
"dasherize": "2.0.0"
|
||||
|
@ -8646,9 +8646,9 @@
|
|||
"integrity": "sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q=="
|
||||
},
|
||||
"node-abi": {
|
||||
"version": "2.11.0",
|
||||
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.11.0.tgz",
|
||||
"integrity": "sha512-kuy/aEg75u40v378WRllQ4ZexaXJiCvB68D2scDXclp/I4cRq6togpbOoKhmN07tns9Zldu51NNERo0wehfX9g==",
|
||||
"version": "2.12.0",
|
||||
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.12.0.tgz",
|
||||
"integrity": "sha512-VhPBXCIcvmo/5K8HPmnWJyyhvgKxnHTUMXR/XwGHV68+wrgkzST4UmQrY/XszSWA5dtnXpNp528zkcyJ/pzVcw==",
|
||||
"requires": {
|
||||
"semver": "^5.4.1"
|
||||
},
|
||||
|
|
|
@ -37,9 +37,9 @@
|
|||
"electron-window-state": "5.0.3",
|
||||
"express": "4.17.1",
|
||||
"express-session": "1.17.0",
|
||||
"file-type": "12.3.0",
|
||||
"file-type": "12.3.1",
|
||||
"fs-extra": "8.1.0",
|
||||
"helmet": "3.21.1",
|
||||
"helmet": "3.21.2",
|
||||
"html": "1.0.0",
|
||||
"html2plaintext": "2.1.2",
|
||||
"http-proxy-agent": "2.1.0",
|
||||
|
@ -54,7 +54,7 @@
|
|||
"mime-types": "2.1.24",
|
||||
"moment": "2.24.0",
|
||||
"multer": "1.4.2",
|
||||
"node-abi": "2.11.0",
|
||||
"node-abi": "2.12.0",
|
||||
"open": "7.0.0",
|
||||
"pngjs": "3.4.0",
|
||||
"portscanner": "2.2.0",
|
||||
|
|
|
@ -97,6 +97,8 @@ class TreeCache {
|
|||
const missingNoteIds = noteIds.filter(noteId => this.notes[noteId] === undefined);
|
||||
|
||||
if (missingNoteIds.length > 0) {
|
||||
console.trace("Refreshing", missingNoteIds);
|
||||
|
||||
const resp = await server.post('tree/load', { noteIds: missingNoteIds });
|
||||
|
||||
this.addResp(resp.notes, resp.branches, resp.relations);
|
||||
|
|
|
@ -32,17 +32,16 @@ class EditedNotesWidget extends StandardWidget {
|
|||
return;
|
||||
}
|
||||
|
||||
const noteIds = editedNotes.flatMap(note => note.notePath);
|
||||
const noteIds = editedNotes.flatMap(note => note.noteId);
|
||||
|
||||
await treeCache.getNotes(noteIds, true); // preload all at once
|
||||
|
||||
const $list = $('<ul>');
|
||||
|
||||
for (const editedNote of editedNotes) {
|
||||
const note = await treeCache.getNote(editedNote.noteId, true);
|
||||
const $item = $("<li>");
|
||||
|
||||
if (!note) {
|
||||
if (editedNote.isDeleted) {
|
||||
$item.append($("<i>").text(editedNote.title + " (deleted)"));
|
||||
}
|
||||
else {
|
||||
|
|
|
@ -2,8 +2,10 @@ const WebSocket = require('ws');
|
|||
const utils = require('./utils');
|
||||
const log = require('./log');
|
||||
const sql = require('./sql');
|
||||
const syncMutexService = require('./sync_mutex');
|
||||
|
||||
let webSocketServer;
|
||||
let lastSyncId = 0;
|
||||
|
||||
function init(httpServer, sessionParser) {
|
||||
webSocketServer = new WebSocket.Server({
|
||||
|
@ -27,11 +29,13 @@ function init(httpServer, sessionParser) {
|
|||
ws.on('message', messageJson => {
|
||||
const message = JSON.parse(messageJson);
|
||||
|
||||
lastSyncId = Math.max(lastSyncId, message.lastSyncId);
|
||||
|
||||
if (message.type === 'log-error') {
|
||||
log.error('JS Error: ' + message.error);
|
||||
}
|
||||
else if (message.type === 'ping') {
|
||||
sendPing(ws, message.lastSyncId);
|
||||
syncMutexService.doExclusively(async () => await sendPing(ws, lastSyncId));
|
||||
}
|
||||
else {
|
||||
log.error('Unrecognized message: ');
|
||||
|
|
Loading…
Reference in a new issue