aboutsummaryrefslogtreecommitdiff
path: root/bench/snippets
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-01-02 13:23:08 -0800
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-01-02 13:23:08 -0800
commit4eb9e8bb5aea4ae2ae1e5a2098ebb943de1b6280 (patch)
tree0b9479ddfab68ae3ca6f300bfacad377f96a16ee /bench/snippets
parent80c2da73ef59f0170f1c92551c948a1b285da17c (diff)
downloadbun-4eb9e8bb5aea4ae2ae1e5a2098ebb943de1b6280.tar.gz
bun-4eb9e8bb5aea4ae2ae1e5a2098ebb943de1b6280.tar.zst
bun-4eb9e8bb5aea4ae2ae1e5a2098ebb943de1b6280.zip
update node echo bench
Diffstat (limited to 'bench/snippets')
-rw-r--r--bench/snippets/tcp-echo.node.mjs68
1 files changed, 55 insertions, 13 deletions
diff --git a/bench/snippets/tcp-echo.node.mjs b/bench/snippets/tcp-echo.node.mjs
index 3362b5a3c..a854787cf 100644
--- a/bench/snippets/tcp-echo.node.mjs
+++ b/bench/snippets/tcp-echo.node.mjs
@@ -29,22 +29,64 @@ const handlers = {
},
};
-const server = net.createServer(function (socket) {
- socket.data = { isServer: true };
- socket.on("connection", handlers.open.bind(socket));
- socket.on("data", handlers.data.bind(socket));
- socket.on("drain", handlers.drain.bind(socket));
- socket.setEncoding("binary");
-});
+if (net.createServer) {
+ const server = net.createServer(function (socket) {
+ socket.data = { isServer: true };
+ socket.on("connection", handlers.open.bind(socket));
+ socket.on("data", handlers.data.bind(socket));
+ socket.on("drain", handlers.drain.bind(socket));
+ socket.setEncoding("binary");
+ });
-setInterval(() => {
- console.log("Wrote", counter, "messages");
- counter = 0;
-}, 1000);
+ setInterval(() => {
+ console.log("Wrote", counter, "messages");
+ counter = 0;
+ }, 1000);
-server.listen(8000);
+ server.listen(8000);
+} else {
+ const handlers = {
+ open(socket) {
+ if (!socket.data?.isServer) {
+ if (!socket.write(msg)) {
+ socket.data = { pending: msg };
+ }
+ }
+ },
+ data(socket, buffer) {
+ if (!socket.write(buffer)) {
+ socket.data = { pending: buffer };
+ return;
+ }
+ counter++;
+ },
+ drain(socket) {
+ const pending = socket.data?.pending;
+ if (!pending) return;
+ if (socket.write(pending)) {
+ socket.data = undefined;
+ counter++;
+ return;
+ }
+ },
+ };
+
+ setInterval(() => {
+ console.log("Wrote", counter, "messages");
+ counter = 0;
+ }, 1000);
+
+ const server = Bun.listen({
+ socket: handlers,
+ hostname: "0.0.0.0",
+ port: 8000,
+ data: {
+ isServer: true,
+ },
+ });
+}
-const socket = net.connect({ host: "localhost", port: 8000 }, () => {});
+const socket = net.connect({ host: "0.0.0.0", port: 8000 }, () => {});
socket.on("connection", handlers.open.bind(socket));
socket.on("data", handlers.data.bind(socket));
socket.on("drain", handlers.drain.bind(socket));