Catalog npm
Back to packageRELEASE DETAILS

0.2.0

npm

3h-room

A simple lib for SSE room management.

3hbackendmanagementmemberroomsse
Published22 Jan 2024
Direct dependencies6
Transitive dependenciesNot calculated

README

Current package documentation

3h-room

A simple lib for SSE room management.

Example

Here's an example SSE room server based on express:

const express = require('express');
const SSE = require('3h-sse');
const HR = require('3h-room');

const app = express();

const createSSEController = () =>
    new SSE.SSEController({
        backend: new SSE.NodeJSBackend(),
    })

const room = new HR.Room({
    maxMemberCount: 2,
    sseController: createSSEController(),
});

room.on('enter', (member) => {
    member.sendEvent('info', 'welcome');
})

app.get('/sub/:name', (req, res) => {

    const member = new HR.Member({
        identity: decodeURIComponent(req.params.name),
        response: res,
        sseController: createSSEController(),
    });

    member.on('enter', (_room) => {
        _room.sendEvent('debug', 'member entered: ' + member.identity);
    });
    member.on('leave', (_room) => {
        _room.sendEvent('debug', 'member left: ' + member.identity);
    });

    try {
        room.addMember(member);
    } catch (error) {
        res.status(403);
        res.end();
        return;
    }

    res.once('close', () => {
        room.removeMember(member);
    });

});

app.listen(8080);

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 6

Native requirements
6 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
3h-sse
Environment
{
  "local_name": "3h-sse",
  "alias": false,
  "peer_metadata": null
}
^0.3.2runtime
@types/express
Environment
{
  "local_name": "@types/express",
  "alias": false,
  "peer_metadata": null
}
^4.17.21development
@types/node
Environment
{
  "local_name": "@types/node",
  "alias": false,
  "peer_metadata": null
}
^20.8.0development
dts2md
Environment
{
  "local_name": "dts2md",
  "alias": false,
  "peer_metadata": null
}
^0.4.4development
express
Environment
{
  "local_name": "express",
  "alias": false,
  "peer_metadata": null
}
^4.18.2development
typescript
Environment
{
  "local_name": "typescript",
  "alias": false,
  "peer_metadata": null
}
^5.2.2development

Distribution files

1 collected
Distribution 1

Source distribution

Source file
Checksums from source
{
  "integrity": "sha512-4ihgz88Z0zFkMwqAB8IFEUH7ezmfugJS3kn+iaK2LtEv9y/YxKUDrJEh+HD+V2Qrn6oJko5wYs8+RJ6zyH5OUg==",
  "shasum": "98ea053532c4a9ec4d50c2898da8cc3791d59fe9",
  "tarball": "https://registry.npmjs.org/3h-room/-/3h-room-0.2.0.tgz",
  "fileCount": 38,
  "unpackedSize": 59303,
  "signatures": [
    {
      "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA",
      "sig": "MEQCIDZylSrFAWTwYJuVLSsCOmjZkeKEWgieMJIAQFhRBvWnAiAUYuTzj1/zskZSQyXOiqNSGPUpT2r0N8AIqwImLs4ZIg=="
    }
  ]
}

Repository

PENDING
huang2002/3h-room

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 19:43 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:ed87f71eabe24d3ae94a3b3ef59e6dc0b4fa2f76860812371ad4b44ffbe8b06b

Other collected versions

0.1.022 JanView all collected versions →