UNPKG

@sntran/socket

Version:
41 lines (31 loc) 1.06 kB
# @sntran/socket Cross runtime implementation of the proposed [Socket API](https://sockets-api.proposal.wintercg.org/). On Node, a custom implementation on top of `node:net` and `node:tls` is used. Deno uses the same implementation with buit-in polyfills. On Cloudflare Workers, `cloudflare:sockets` is used. ## Usage See [examples](./examples/gopher.js) for more detailed usage. ```js import { connect } from "@sntran/socket"; export default { async fetch(request) { const gopherAddr = { hostname: "gopher.floodgap.com", port: 70 }; const url = new URL(req.url); try { const socket = connect(gopherAddr); const writer = socket.writable.getWriter(); const encoder = new TextEncoder(); const encoded = encoder.encode(url.pathname + "\r\n"); await writer.write(encoded); return new Response(socket.readable, { headers: { "Content-Type": "text/plain" }, }); } catch (error) { return new Response("Socket connection failed: " + error, { status: 500, }); } }, }; ```