node's net API for react-native


403.3.13 years ago3 years agoMinified + gzip package size for @staltz/react-native-tcp in KB


TCP in React Native

node's net API in React Native


npm install @staltz/react-native-tcp --save

Link in the native dependency

react-native link @staltz/react-native-tcp

Additional dependencies

Due to limitations in the react-native packager, streams need to be hacked in with rn-nodeify

  1. install rn-nodeify as a dev-dependency npm install --save-dev rn-nodeify
  2. run rn-nodeify manually rn-nodeify --install stream,process,util --hack
  3. optionally you can add this as a postinstall script "postinstall": "rn-nodeify --install stream,process,util --hack"



only if you want to write require('net') or require('tls') in your javascript

  "react-native": {
    "net": "@staltz/react-native-tcp",
    "tls": "@staltz/react-native-tcp/tls"


see/run index.ios.js/index.android.js for a complete example, but basically it's just like net

var net = require('net');
var net = require('tls');
// OR, if not shimming via package.json "react-native" field:
// var net = require('@staltz/react-native-tcp')
// var tls = require('@staltz/react-native-tcp/tls')

var server = net.createServer(function(socket) {

var client = net.createConnection(12345);

client.on('error', function(error) {

client.on('data', function(data) {
  console.log('message was received', data)

TLS support

TLS is only supported in the client interface. To use TLS, use the tls.connect() syntax and not socket = new tls.Socket() syntax.

const socket = tls.connect({port: 50002, host:'electrum.villocq.com', rejectUnauthorized: false}, () => {
  socket.write('{ "id": 5, "method": "blockchain.estimatefee", "params": [2] }\n')

socket.on('data', (data) => {
  console.log('data:' + data.toString('ascii'))

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.