Skip to content

tablexi/react-native-tcp

This branch is 3 commits ahead of staltz/react-native-tcp:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

1f7f99f · Nov 16, 2018
May 3, 2018
Jan 16, 2017
Dec 23, 2015
Jul 26, 2018
May 3, 2018
Dec 23, 2015
Dec 16, 2015
Jun 17, 2016
Dec 30, 2015
Dec 15, 2016
Jan 2, 2016
Nov 16, 2018
Jan 5, 2018
May 11, 2018
Apr 7, 2018
Dec 1, 2017
Dec 23, 2015
Nov 16, 2018

Repository files navigation

TCP in React Native

node's net API in React Native

Install

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

if using Cocoapods

Update the following line with your path to node_modules/ and add it to your podfile:

pod 'TcpSockets', :path => '../node_modules/react-native-tcp'

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"

Usage

package.json

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"
  }
}

JS

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) {
  socket.write('excellent!');
}).listen(12345);

var client = net.createConnection(12345);

client.on('error', function(error) {
  console.log(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')
  console.log('Connected')
})

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

About

node's net api in react-native

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Objective-C 87.9%
  • JavaScript 6.2%
  • Java 5.7%
  • Ruby 0.2%