Are you broadcasting the message to all connected clients, or only the one that sent the message to
Are you broadcasting the message to all connected clients, or only the one that sent the message to the server?
ws can be found in the this.state.getWebSockets() settransaction can be used over transactionSync even in SQLite DO, does that mean the purpose of transactionSync is merely to provide a sync API?getWebSockets(), but your code proves it always would be for the server to respond. Interesting issue durable_objects.namespaces.objects API always returns hasStoredData: false for SQL-backed DOs, even if they do have data. Is this intentional or a bug?alarm(), so whatever happens within the alarm() doesn't really affect how the original alarm() is invoked


/studio to the deployed instance URL.
What are Durable Objects: https://developers.cloudflare.com/durable-objects/what-are-durable-objects/
blockConcurrencyWhile is like a lock, nothing can get into your DO while that runs.blockConcurrencyWhile). Store something in your state/storage that you are doing a transaction and reject anything if that's true.blockConcurrencyWhile personally and try to avoid it.wsthis.state.getWebSockets()transactiontransactionSynctransactionSyncgetWebSockets()async alarm() {
await setAlarm(someTimestampFarIntoTheFuture)
await somethingThatWillFail()
}durable_objects.namespaces.objectshasStoredData: falsealarm()alarm()alarm()/studioWhat are Durable ObjectsblockConcurrencyWhileblockConcurrencyWhileblockConcurrencyWhilewebSocketMessage(source: WebSocket, data: string) {
for (let ws of this.ctx.getWebSockets()) {
if (ws == source) {
continue
}
ws.send(data)
}
}