node's net API in React Native
This module is used by Peel
-
Create a new react-native project. Check react-native getting started
-
In your project dir:
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
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 react-native-tcp
Due to limitations in the react-native packager, streams need to be hacked in with rn-nodeify
- install rn-nodeify as a dev-dependency
npm install --save-dev rn-nodeify
- run rn-nodeify manually
rn-nodeify --install stream,process,util --hack
- 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') in your javascript
{
"browser": {
"net": "react-native-tcp"
}
}
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);
});
add select tests from node's tests for net
PR's welcome!
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.
All credits to original authors
forked from react-native-tcp
originally forked from react-native-udp