Path: blob/master/src/packages/database/conat/changefeed-api.ts
1503 views
/*12DEVELOPMENT:34Turn off conat-server handling for the hub for changefeeds by sending this message from a browser as an admin:56await cc.client.conat_client.hub.system.terminate({service:'changefeeds'})78In a node session:910DEBUG=cocalc*changefeed* DEBUG_CONSOLE=yes node1112require('@cocalc/backend/conat'); require('@cocalc/database/conat/changefeed-api').init()1314In another session:1516require('@cocalc/backend/conat'); c = require('@cocalc/conat/changefeed/client');17account_id = '6aae57c6-08f1-4bb5-848b-3ceb53e61ede';18cf = await c.changefeed({account_id,query:{accounts:[{account_id, first_name:null}]}, heartbeat:5000, lifetime:30000});1920const {value:{id}} = await cf.next();21console.log({id});22for await (const x of cf) { console.log(new Date(), {x}); }2324await c.renew({account_id, id})25*/2627import {28changefeedServer,29type ConatSocketServer,30} from "@cocalc/conat/hub/changefeeds";3132import { db } from "@cocalc/database";33import { conat } from "@cocalc/backend/conat";3435let server: ConatSocketServer | null = null;36export function init() {37const D = db();38server = changefeedServer({39client: conat(),40userQuery: D.user_query.bind(D),41cancelQuery: (id: string) => D.user_query_cancel_changefeed({ id }),42});43}4445export function close() {46server?.close();47server = null;48}495051