solid-notification-client
Version:
Client library for Solid Notifications Protocol v0.2.0
69 lines (51 loc) • 2.6 kB
Markdown
[](https://www.npmjs.com/package/solid-notification-client)
This library implements subscribing to a Notication Channel following the [Solid Notifications Protocol](https://solidproject.org/TR/notifications-protocol).
```sh
npm i solid-notification-client
```
First identify a resource you are interested in, i.e. the **topic**.
Next, identify the [features](https://solidproject.org/TR/notifications-protocol#notification-channel) 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](http://www.w3.org/ns/solid/notifications#WebSocketChannel2023).
```javascript
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).
```json
{
"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.
```sh
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:
```sh
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](https://github.com/woutslabbinck/Solid-Notification/issues).
Further questions can also be asked to [Wout Slabbinck](mailto:wout.slabbinck@ugent.be) (developer and maintainer of this repository).