How to Create Tcp Client in Nodejs Using Async/Await?

How to Create Tcp Client in Nodejs Using Async/Await?

I have written the following tcp client in nodejs.

const net = require('net');

const HOST = 'linux345';
const PORT = 2345;
let ErrCode = 1;

const client = new net.Socket();

client.connect(PORT, HOST, function() {
    ErrCode = 0;
});

client.on('data', function(data) {    
    console.log('Client received: ' + data);
     if (data.toString().endsWith('exit')) {
       client.destroy();
    }
});

client.on('close', function() {
});

client.on('error', function(err) {
    ErrCode = err.code;
    console.log(ErrCode);
});

console.log(ErrCode);

Please suggest how can I write same logic using async/await

I have looked into the following post but it is not helpful. node 7.6 async await issues with returning data

1

1 Answer

There is an amazing package that wraps the native Node socket in a promise. Allowing you to utilize async/await syntax on all socket methods.

The package can be found on NPM.

Example

import net from "net"
import PromiseSocket from "promise-socket"

const socket = new net.Socket()

const promiseSocket = new PromiseSocket(socket)

await connect(80, "localhost")
// or
await connect({port: 80, host: "localhost"})

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Chloe Bennett
Author

Chloe Bennett

Chloe Bennett explores the intersection of pop culture, streaming entertainment, digital trends, and contemporary lifestyle. Her weekly commentary reaches thousands of culture enthusiasts.