mirror of
https://github.com/badlogic/pi-mono.git
synced 2026-11-05 23:37:25 +00:00
src/next is src (the main export), src/next-node is src/node with short subpaths (/http, /workers, /plugins, /plugins/runtime, /app, /surfaces, /web, /react, /tui, /tui/launcher); the foundations get /json and /watch; Chord v1 moves to src/old (/old, /old/node) until p2 runs on v2; tests and docs move likewise (test/, docs/, test/old, docs/old). Durable and env import the foundations from their subpaths.
16 lines
550 B
TypeScript
16 lines
550 B
TypeScript
// The echo plugin: a WebSocket of its own protocol at `/echo/:room`, after the server checked who is connecting.
|
|
|
|
import { defineFacet } from "@earendil-works/chord";
|
|
import { Http } from "@earendil-works/chord/http";
|
|
|
|
export default defineFacet((_host, self) =>
|
|
self.contribute(Http, {
|
|
sockets: {
|
|
"/echo/:room": (socket, request, ctx) => {
|
|
const who = JSON.stringify(ctx.principal);
|
|
socket.send(`welcome to ${request.params.room}, ${who}`);
|
|
socket.on("message", (data) => socket.send(`echo: ${String(data)}`));
|
|
},
|
|
},
|
|
}),
|
|
);
|