MCPcopy
hub / github.com/socketio/socket.io / setupServer

Function setupServer

packages/engine.io/test/webtransport.mjs:28–68  ·  view source on GitHub ↗
(opts, cb)

Source from the content-addressed store, hash-verified

26}
27
28async function setupServer(opts, cb) {
29 const certificate = await generateWebTransportCertificate(
30 [{ shortName: "CN", value: "localhost" }],
31 {
32 days: 13, // the total length of the validity period MUST NOT exceed two weeks (https://w3c.github.io/webtransport/#custom-certificate-requirements)
33 },
34 );
35
36 const engine = new eio.Server(opts);
37
38 const h3Server = new Http3Server({
39 port: 0, // random port
40 host: "0.0.0.0",
41 secret: "changeit",
42 cert: certificate.cert,
43 privKey: certificate.private,
44 });
45
46 (async () => {
47 try {
48 const stream = await h3Server.sessionStream("/engine.io/");
49 const sessionReader = stream.getReader();
50
51 while (true) {
52 const { done, value } = await sessionReader.read();
53 if (done) {
54 break;
55 }
56 engine.onWebTransportSession(value);
57 }
58 } catch (ex) {
59 console.error("Server error", ex);
60 }
61 })();
62
63 h3Server.startServer();
64
65 await h3Server.ready;
66
67 cb({ engine, h3Server, certificate });
68}
69
70function setup(opts, cb) {
71 setupServer(opts, async ({ engine, h3Server, certificate }) => {

Callers 2

setupFunction · 0.85
webtransport.mjsFile · 0.85

Calls 3

readMethod · 0.80
cbFunction · 0.70

Tested by

no test coverage detected