This library implements subscribing to a Notication Channel following the Solid Notifications Protocol.
npm i solid-notification-client
First identify a resource you are interested in, i.e. the topic. Next, identify the features which you want to be present in the notification channel.
Then you can use the following example code to set up the channel. In this code, a subscription is made for a WebSocketChannel2023.
import { Session } from '@rubensworks/solid-client-authn-isomorphic';
import { WebSocketChannel2023 } from 'solid-notification-client';
import { WebSocket } from 'ws';
async function main() {
const topic = 'http://localhost:3000/'
const features = {}
const channel = new WebSocketChannel2023(new Session());
const webSocketUrl = await channel.subscribe(topic, {})
const socket = new WebSocket(webSocketUrl);
socket.onmessage = (message) => console.log(message.data.toString());
}
main()
Following features might be supported by the Subscription Server (examples are given for each features).
{
"accept": "text/turtle",
"startAt": "1988-03-09T14:48:00.000Z", // format xsd:dateTime
"endAt": "1988-03-09T14:48:00.000Z", // format xsd:dateTime
"state": "", // don't know
"rate": "PT1S" // format xsd:duration
}
See section 2.3.2 of the specification for more details
Install the CSS that supports the Solid Notification Protocol.
npm i @solid/community-server https://github.com/CommunitySolidServer/CommunitySolidServer#feat/add-notification
Start a server without setup, with memory storage and with both WebSocketChannel2023 and WebHookSubscription2021 channel types for solid notifications:
wget https://raw.githubusercontent.com/woutslabbinck/Solid-Notification/main/config/memory-config.json
npx @solid/community-server -c memory-config.json
Do not hesitate to report a bug.
Further questions can also be asked to Wout Slabbinck (developer and maintainer of this repository).