BlockSuite API Documentation / @blocksuite/sync / SyncPeer
Class: SyncPeer
Defined in: doc/peer.ts:54
DocPeer
A DocPeer is responsible for syncing one Storage with one Y.Doc and its subdocs.
┌─────┐
│Start│
└──┬──┘
│
┌──────┐ ┌─────▼──────┐ ┌────┐
│listen◄─────┤pull rootdoc│ │peer│
└──┬───┘ └─────┬──────┘ └──┬─┘
│ │ onLoad() │
┌──▼───┐ ┌─────▼──────┐ ┌────▼────┐
│listen◄─────┤pull subdocs│ │subscribe│
└──┬───┘ └─────┬──────┘ └────┬────┘
│ │ onReady() │
┌──▼──┐ ┌─────▼───────┐ ┌──▼──┐
│queue├──────►apply updates◄───────┤queue│
└─────┘ └─────────────┘ └─────┘
listen: listen for updates from ydoc, typically from user modifications. subscribe: listen for updates from storage, typically from other users.
Constructors
new SyncPeer()
new SyncPeer(
rootDoc
,source
,priorityTarget
,logger
):SyncPeer
Defined in: doc/peer.ts:153
Parameters
rootDoc
Doc
source
priorityTarget
SharedPriorityTarget
= ...
logger
Logger
Returns
SyncPeer
Properties
abort
readonly
abort:AbortController
Defined in: doc/peer.ts:63
logger
readonly
logger:Logger
Defined in: doc/peer.ts:157
onStatusChange
readonly
onStatusChange:Subject
<DocPeerStatus
>
Defined in: doc/peer.ts:113
priorityTarget
readonly
priorityTarget:SharedPriorityTarget
Defined in: doc/peer.ts:156
rootDoc
readonly
rootDoc:Doc
Defined in: doc/peer.ts:154
source
readonly
source:DocSource
Defined in: doc/peer.ts:155
state
readonly
state:object
Defined in: doc/peer.ts:115
connectedDocs
connectedDocs:
Map
<string
,Doc
>
pullUpdatesQueue
pullUpdatesQueue:
PriorityAsyncQueue
<{data
:Uint8Array
;id
:string
; }>
pushingUpdate
pushingUpdate:
boolean
pushUpdatesQueue
pushUpdatesQueue:
PriorityAsyncQueue
<{data
:Uint8Array
<ArrayBufferLike
>[];id
:string
; }>
subdocLoading
subdocLoading:
boolean
subdocsLoadQueue
subdocsLoadQueue:
PriorityAsyncQueue
<{doc
:Doc
;id
:string
; }>
Accessors
name
Get Signature
get name():
string
Defined in: doc/peer.ts:137
Returns
string
Methods
connectDoc()
connectDoc(
doc
,abort
):Promise
<void
>
Defined in: doc/peer.ts:167
Parameters
doc
Doc
abort
AbortSignal
Returns
Promise
<void
>
disconnectDoc()
disconnectDoc(
doc
):void
Defined in: doc/peer.ts:193
Parameters
doc
Doc
Returns
void
handleStorageUpdates()
handleStorageUpdates(
id
,data
):void
Defined in: doc/peer.ts:66
Parameters
id
string
data
Uint8Array
Returns
void
handleSubdocsUpdate()
handleSubdocsUpdate(
__namedParameters
):void
Defined in: doc/peer.ts:75
Parameters
__namedParameters
added
Set
<Doc
>
removed
Set
<Doc
>
Returns
void
handleYDocUpdates()
handleYDocUpdates(
update
,origin
,doc
):void
Defined in: doc/peer.ts:94
Parameters
update
Uint8Array
origin
string
doc
Doc
Returns
void
initState()
initState():
void
Defined in: doc/peer.ts:199
Returns
void
stop()
stop():
void
Defined in: doc/peer.ts:213
stop sync
DocPeer is one-time use, this peer should be discarded after call stop().
Returns
void
sync()
sync(
abortOuter
):Promise
<void
>
Defined in: doc/peer.ts:221
main synchronization logic
Parameters
abortOuter
AbortSignal
Returns
Promise
<void
>
syncRetryLoop()
syncRetryLoop(
abort
):Promise
<void
>
Defined in: doc/peer.ts:331
auto retry after 5 seconds if sync failed
Parameters
abort
AbortSignal
Returns
Promise
<void
>
updateSyncStatus()
updateSyncStatus():
void
Defined in: doc/peer.ts:376
Returns
void
waitForLoaded()
waitForLoaded(
abort
?):Promise
<void
>
Defined in: doc/peer.ts:404
Parameters
abort?
AbortSignal
Returns
Promise
<void
>
waitForSynced()
waitForSynced(
abort
?):Promise
<void
>
Defined in: doc/peer.ts:428
Parameters
abort?
AbortSignal
Returns
Promise
<void
>