rxdb
Version:
A local-first realtime NoSQL Database for JavaScript applications - https://rxdb.info/
79 lines (71 loc) • 2.6 kB
JavaScript
// import { Subject } from 'rxjs';
// import { PROMISE_RESOLVE_VOID, randomToken } from '../../util';
// import type {
// P2PConnectionHandler,
// P2PConnectionHandlerCreator,
// P2PMessage,
// P2PPeer,
// PeerWithMessage,
// PeerWithResponse
// } from './p2p-types';
// import P2PCF from 'p2pcf';
// /**
// * Returns a connection handler that uses the Cloudflare worker signaling server
// * @link https://github.com/gfodor/p2pcf
// */
// export function getConnectionHandlerP2PCF(
// p2pCFOptions: {
// workerUrl?: string
// } = {}
// ): P2PConnectionHandlerCreator {
// // const P2PCF = require('p2pcf');
// const creator: P2PConnectionHandlerCreator = (options) => {
// const clientId = randomToken(10);
// const p2p2 = new P2PCF(clientId, options.topic, p2pCFOptions);
// const connect$ = new Subject<P2PPeer>();
// p2p2.on('peerconnect', (peer) => connect$.next(peer as any));
// const disconnect$ = new Subject<P2PPeer>();
// p2p2.on('peerclose', (peer) => disconnect$.next(peer as any));
// const message$ = new Subject<PeerWithMessage>();
// const response$ = new Subject<PeerWithResponse>();
// p2p2.on('msg', (peer, messageOrResponse) => {
// if (messageOrResponse.result) {
// response$.next({
// peer: peer as any,
// response: messageOrResponse
// });
// } else {
// message$.next({
// peer: peer as any,
// message: messageOrResponse
// });
// }
// });
// const handler: P2PConnectionHandler = {
// connect$,
// disconnect$,
// message$,
// response$,
// async send(peer: P2PPeer, message: P2PMessage) {
// const [responsePeer, response] = await p2p2.send(peer as any, message);
// return {
// peer: responsePeer,
// response
// } as any;
// },
// close() {
// p2p2.close();
// connect$.complete();
// disconnect$.complete();
// message$.complete();
// response$.complete();
// return PROMISE_RESOLVE_VOID;
// }
// }
// p2p2.start();
// return handler;
// };
// return creator;
// }
;
//# sourceMappingURL=connection-handler-p2pcf.js.map