connects to a remote rsf-http-register via websockets, spins up new registration pages, and live streams and returns aggregate results.
Feeds nicely into anything to do with rsf-contactable, which takes in the ContactableConfig data types that this outputs.
The environment variables mentioned below will need to be setup.
Note that you have to FIRST call createParticipantRegister, THEN you can call getContactablesFromRegistration. An error will be thrown otherwise.
import {
createParticipantRegister,
getContactablesFromRegistration
} from 'rsf-http-register-client'
const example = async () => {
// generate a random ID which is URL compatible (no spaces)
const ID = '1234'
// setup the full configuration details
const participantRegisterConfig = {
id: ID,
maxParticipants: 3, // use '*' to set unlimited
maxTime: 1500, // seconds
description: 'description which will show on the registration page'
}
// set up an idle (still closed) registration page
await createParticipantRegister(participantRegisterConfig)
const liveResult = eachConfig => {
console.log('Received a new config', eachConfig)
}
// the return value will be the full set of registered contactable_configs,
// but you can also optionally pass the callback for a stream of them
const configs = await getContactablesFromRegistration(ID, liveResult)
}This project depends on the following environment variables:
// Required: should be 'http' or 'https'
REGISTER_HTTP_PROTOCOL
// Required: should be 'ws' or 'wss'
REGISTER_WS_PROTOCOL
// Required: can be an ip address, or a domain name
REGISTER_HOST
// Optional: should just be a regular networking port number, if needed
REGISTER_PORTFor reference, I got help setting up tests in typescript for mocha/chai using this little tutorial: https://journal.artfuldev.com/write-tests-for-typescript-projects-with-mocha-and-chai-in-typescript-86e053bdb2b6