react-native-tcp-no-cocoa

4.1.3 • Public • Published

TCP in React Native

node's net API in React Native

This module is used by Peel

Install

npm install react-native-tcp --save

Note for iOS: If your react-native version < 0.40 install with this tag instead:

npm install react-native-tcp@3.1.0 --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 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') in your javascript

{
  "browser": {
    "net": "react-native-tcp"
  }
}

JS

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

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

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);
});

TODO

add select tests from node's tests for net

PR's welcome!

Note

Problem: My issue was that I am restricted to pulling packages from NPMJS and GitHub was not allowed. However, the version of react-native-tcp (4.0.0) on NPMJS was tied to an older version, and I was hitting into the dependency issue caused by TcpSocket's dependency on CocoaAsyncSocket. This dependency issue was only fixed on the latest version on Master branch, that is NOT linked to NPMJS.

Solution: Fork said version, remove TcpSocket's dependency on CocoaAsyncSocket from TcpSocket.podspec, maintain it on GitHub and publish on NPMJS as a scoped public package "react-native-tcp-no-cocoa" for people who are restricted to only pulling packages from NPMJS.

Credits

All credits to original authors

forked from react-native-tcp

originally forked from react-native-udp

Package Sidebar

Install

npm i react-native-tcp-no-cocoa

Weekly Downloads

4

Version

4.1.3

License

MIT

Unpacked Size

153 kB

Total Files

31

Last publish

Collaborators

  • clarelhy