You can use node:net ↗ to create a direct connection to servers via a TCP sockets
with net.Socket ↗.
These functions use connect functionality from the built-in cloudflare:sockets module.
import net from "node:net";
const exampleIP = "127.0.0.1";
export default {
async fetch(req) {
const socket = new net.Socket();
socket.connect(4000, exampleIP, function () {
console.log("Connected");
});
socket.write("Hello, Server!");
socket.end();
return new Response("Wrote to server", { status: 200 });
},
};import net from "node:net";
const exampleIP = "127.0.0.1";
export default {
async fetch(req): Promise<Response> {
const socket = new net.Socket();
socket.connect(4000, exampleIP, function () {
console.log("Connected");
});
socket.write("Hello, Server!");
socket.end();
return new Response("Wrote to server", { status: 200 });
},
} satisfies ExportedHandler;Additionally, other APIs such as net.BlockList ↗
and net.SocketAddress ↗ are available.
Note that the net.Server ↗ class is not supported by Workers.
The full node:net API is documented in the Node.js documentation for node:net ↗.