[BREAKGLASS] Append-only mirror of github.com/bluewallet/react-native-tcp
Go to file
Overtorment 113433d505 mute
2020-03-26 15:12:47 +00:00
android Forced all HTTPS Certs to accept. We have specific project reasons for doing this. 2020-01-28 13:23:54 -07:00
examples/rctsockets Header changes required for 0.40 on ios 2017-01-16 11:33:07 -08:00
interfaces add more flow annotations 2015-12-23 10:57:51 -08:00
ios Forced all HTTPS Certs to accept. We have specific project reasons for doing this. 2020-01-28 13:23:54 -07:00
tls Added TLS 'upgrade' support on Android 2018-05-04 00:50:39 +02:00
.eslintignore add more flow annotations 2015-12-23 10:57:51 -08:00
.eslintrc start integrating static analysis 2015-12-16 15:05:08 -08:00
.flowconfig fix oustanding issues 2016-06-17 13:55:05 -07:00
.gitignore add android support 2015-12-29 16:00:18 -08:00
.npmignore add examples to npmignore 2016-12-15 13:52:48 -08:00
base64-str.js add more flow annotations 2015-12-23 10:57:51 -08:00
LICENSE prepare for public release 2016-01-02 11:03:35 -08:00
package.json Forced all HTTPS Certs to accept. We have specific project reasons for doing this. 2020-01-28 13:23:54 -07:00
react-native-tcp.podspec Forced all HTTPS Certs to accept. We have specific project reasons for doing this. 2020-01-28 13:23:54 -07:00
README.md update dependencies, fix android packageName, bump 3.3.2 2018-11-29 11:36:19 +07:00
TcpServer.js commented out annoying redundant logs 2018-01-05 11:22:28 -08:00
TcpSocket.js mute 2020-03-26 15:12:47 +00:00
TcpSockets.js Fix net.createServer to comply with official API 2018-04-07 17:26:55 +03:00
TcpSockets.podspec Support CocoaPods 2017-12-01 15:47:39 -07:00
yarn.lock update dependencies, fix android packageName, bump 3.3.2 2018-11-29 11:36:19 +07:00

TCP in React Native

node's net API in React Native

Install

npm install @hawkingnetwork/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'
react-native link @hawkingnetwork/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": "@hawkingnetwork/react-native-tcp",
    "tls": "@hawkingnetwork/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('@hawkingnetwork/react-native-tcp')
// var tls = require('@hawkingnetwork/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'))
})