react-native-tcp-no-cocoa v4.1.3
TCP in React Native
node's net API in React Native
This module is used by Peel
Install
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
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
- 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"
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