websocket-broadcasting skillA
websocket-broadcasting is agent-read markdown (skill) from softtor/nestjs-hexagonal: Use when broadcasting domain events to the frontend via WebSocket (Socket.IO). Covers WsGatewayPort abstraction, gateway with Redis adapter, JWT auth, room-based multi-tenant isolation, and frontend consumption. One simple pattern — no over-engineering..
Indexed from public GitHub and served as immutable, content-addressed versions. Install it pinned to an exact SHA-256 with the mdr CLI, and every file is verified against the hash recorded here before it reaches your agent. The deterministic audit below grades the latest version, and the same file always earns the same grade.
What the file says
# WebSocket Broadcasting
Broadcasts domain events to connected frontend clients via Socket.IO. Simple pattern: `@EventsHandler` -> enrich if needed -> `WsGatewayPort.emit()`.
---
## Flow
```
Entity.apply(event) <- domain (queued)
-> entity.commit() <- handler (dispatch via EventBus)
-> @EventsHandler <- bridge handler
-> (optional) repo.findById() to enrich payload
-> gateway.emitToOrganization(orgId, event, data)
-> Socket.IO server.to(`org:${orgId}`).emit()
-> Redis Pub/Sub (multi-pod)
-> connected clients
```
---
## 1. WsGatewayPort (hexagonal abstraction)
Define in `shared/ports/` or the BC's `application/ports/`:
```typescript
export const WS_GATEWAY_TOKEN = Symbol('WsGateway');
export interface WsGatewayPort {
emitToOrganization(orgId: string, event: string, data: Record<string, unknown>): void;
emitToUser(userId: string, event: string, data: Record<string, unknown>): void;
emitGlobal(event: string, data: Record<string, unknown>): void;
}
```
Register in module: `{ provide: WS_GATEWAY_TOKEN, useExisting: AppGateway }`
…Read the whole file at its exact version.
How to install
mdr add softtor/nestjs-hexagonal/websocket-broadcasting@git:20260327.3ac41d8mdr add softtor/nestjs-hexagonal/websocket-broadcasting@sha256:2303f75fc0374e89Pin to a label to follow the author's releases, or to a sha256 to freeze the exact bytes forever. Either way the resolved hash is written to mdr.lock, and mdr install reproduces it on any machine.
[](https://markdownregistry.com/a/art_xbswmsvkabi5rnna)
1 badge views in 30 days
Versions
| version | committed | commit | size | audit | |
|---|---|---|---|---|---|
| git:20260327.3ac41d8 latest | 2026-03-27 | 3ac41d8 | 5,737 B | A | view · diff |
| git:20260327.2694398 | 2026-03-27 | 2694398 | 5,652 B | A | view · diff |
| git:20260326.a4e1dae | 2026-03-26 | a4e1dae | 5,572 B | A | view |
Audit of the latest version
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (5737 bytes)
- pass: No zero-width or bidi control characters
- pass: No instruction hidden inside an HTML comment
- pass: No link to an exfiltration or paste host
- pass: No credential-shaped string
- pass: No instruction to send local credentials anywhere
- pass: No text hidden with inline styles
- pass: No prompt-injection phrasing
- pass: No curl or wget piped into a shell
- pass: No recursive delete of root, home or parent
- pass: No instruction to read or print local credentials
- pass: No base64 blob over 200 characters
- pass: No link to a raw IP address
- pass: No script tag
Source
softtor/nestjs-hexagonal · 5 stars · license MIT · pushed 2026-09-23 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_xbswmsvkabi5rnna GET https://markdownregistry.com/api/v1/resolve?ref=softtor/nestjs-hexagonal/websocket-broadcasting GET https://markdownregistry.com/api/v1/blob/2303f75fc0374e892dc7c59b6f668100e3ae47b2d52430f421807f6d49893754
Your agent does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.