feat: improve provider testing (#1280)

This commit is contained in:
Himself65
2023-03-02 20:00:56 -06:00
committed by GitHub
parent 1e2f91fe21
commit 2a955d1391
11 changed files with 128 additions and 8 deletions

View File

@@ -0,0 +1,3 @@
import { DebugLogger } from '@affine/debug';
export const providerLogger = new DebugLogger('provider');

View File

@@ -6,6 +6,7 @@ import {
} from 'y-protocols/awareness';
import { BlockSuiteWorkspace, BroadCastChannelProvider } from '../../../shared';
import { providerLogger } from '../../logger';
import {
AwarenessChanges,
BroadcastChannelMessageEvent,
@@ -83,7 +84,10 @@ export const createBroadCastChannelProvider = (
onmessage: handleBroadcastChannelMessage,
}
);
console.log('connect broadcast channel', blockSuiteWorkspace.room);
providerLogger.info(
'connect broadcast channel',
blockSuiteWorkspace.room
);
const docDiff = Y.encodeStateVector(doc);
broadcastChannel.postMessage(['doc:diff', docDiff, awareness.clientID]);
const docUpdateV2 = Y.encodeStateAsUpdate(doc);
@@ -98,7 +102,10 @@ export const createBroadCastChannelProvider = (
},
disconnect: () => {
assertExists(broadcastChannel);
console.log('disconnect broadcast channel', blockSuiteWorkspace.room);
providerLogger.info(
'disconnect broadcast channel',
blockSuiteWorkspace.room
);
doc.off('update', handleDocUpdate);
awareness.off('update', handleAwarenessUpdate);
broadcastChannel.close();

View File

@@ -8,6 +8,7 @@ import {
LocalIndexedDBProvider,
} from '../../shared';
import { apis } from '../../shared/apis';
import { providerLogger } from '../logger';
import { createBroadCastChannelProvider } from './broad-cast-channel';
const createWebSocketProvider = (
@@ -18,7 +19,8 @@ const createWebSocketProvider = (
flavour: 'affine-websocket',
cleanup: () => {
assertExists(webSocketProvider);
webSocketProvider?.destroy();
webSocketProvider.destroy();
webSocketProvider = null;
},
connect: () => {
const wsUrl = `${
@@ -34,15 +36,17 @@ const createWebSocketProvider = (
awareness: blockSuiteWorkspace.awarenessStore.awareness,
// we maintain broadcast channel by ourselves
disableBc: true,
connect: false,
}
);
console.log('connect', webSocketProvider.roomname);
providerLogger.info('connect', webSocketProvider.roomname);
webSocketProvider.connect();
},
disconnect: () => {
assertExists(webSocketProvider);
console.log('disconnect', webSocketProvider.roomname);
webSocketProvider?.disconnect();
providerLogger.info('disconnect', webSocketProvider.roomname);
webSocketProvider.destroy();
webSocketProvider = null;
},
};
};
@@ -58,7 +62,10 @@ const createIndexedDBProvider = (
indexdbProvider.clearData();
},
connect: () => {
console.info('connect indexeddb provider', blockSuiteWorkspace.room);
providerLogger.info(
'connect indexeddb provider',
blockSuiteWorkspace.room
);
indexdbProvider = new IndexeddbPersistence(
blockSuiteWorkspace.room as string,
blockSuiteWorkspace.doc
@@ -66,7 +73,10 @@ const createIndexedDBProvider = (
},
disconnect: () => {
assertExists(indexdbProvider);
console.info('disconnect indexeddb provider', blockSuiteWorkspace.room);
providerLogger.info(
'disconnect indexeddb provider',
blockSuiteWorkspace.room
);
indexdbProvider.destroy();
indexdbProvider = null;
},