update readme
This commit is contained in:
parent
b13319e9ee
commit
ab0e3d91c5
131
README.md
131
README.md
|
@ -1 +1,130 @@
|
|||
initial commit
|
||||
# TCP in React Native
|
||||
|
||||
node's [net](https://nodejs.org/api/net.html) API in React Native
|
||||
|
||||
_originally forked from [react-native-udp](https://github.com/tradle/react-native-udp)_
|
||||
|
||||
This module is used by [Peel](http://www.peel.com/)
|
||||
|
||||
## Install
|
||||
|
||||
* Create a new react-native project. [Check react-native getting started](http://facebook.github.io/react-native/docs/getting-started.html#content)
|
||||
|
||||
* In your project dir:
|
||||
```
|
||||
npm install --save react-native-tcp
|
||||
```
|
||||
|
||||
### `iOS`
|
||||
|
||||
* Drag TcpSockets.xcodeproj from node_modules/react-native-tcp/ios into your XCode project.
|
||||
|
||||
* Click on the project in XCode, go to Build Phases, then Link Binary With Libraries and add `libTcpSockets.a`
|
||||
|
||||
### `Android`
|
||||
|
||||
* `android/settings.gradle`
|
||||
|
||||
```gradle
|
||||
...
|
||||
include ':react-native-tcp'
|
||||
project(':react-native-tcp').projectDir = new File(settingsDir, '../node_modules/react-native-tcp/android')
|
||||
```
|
||||
* `android/app/build.gradle`
|
||||
|
||||
```gradle
|
||||
dependencies {
|
||||
...
|
||||
compile project(':react-native-tcp')
|
||||
}
|
||||
```
|
||||
|
||||
* register module (in MainActivity.java)
|
||||
|
||||
```java
|
||||
...
|
||||
|
||||
import com.tradle.peel.*; // <--- import
|
||||
|
||||
public class MainActivity extends Activity implements DefaultHardwareBackBtnHandler {
|
||||
...
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
mReactRootView = new ReactRootView(this);
|
||||
|
||||
mReactInstanceManager = ReactInstanceManager.builder()
|
||||
.setApplication(getApplication())
|
||||
.setBundleAssetName("index.android.bundle")
|
||||
.setJSMainModuleName("index.android")
|
||||
.addPackage(new MainReactPackage())
|
||||
.addPackage(new TcpSocketsModule()) // <- add here
|
||||
.setUseDeveloperSupport(BuildConfig.DEBUG)
|
||||
.setInitialLifecycleState(LifecycleState.RESUMED)
|
||||
.build();
|
||||
|
||||
mReactRootView.startReactApplication(mReactInstanceManager, "YourProject", null);
|
||||
|
||||
setContentView(mReactRootView);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Buckle up, Dorothy
|
||||
|
||||
## Usage
|
||||
|
||||
### package.json
|
||||
|
||||
_only if you want to write require('net') in your javascript_
|
||||
|
||||
```json
|
||||
{
|
||||
"browser": {
|
||||
"net": "react-native-tcp"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### JS
|
||||
|
||||
_see/run [index.js](examples/rctsockets) for a complete example, but basically it's just like net_
|
||||
|
||||
```js
|
||||
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)
|
||||
});
|
||||
```
|
||||
|
||||
### Note
|
||||
|
||||
If you want to send and receive node Buffer objects, you'll have to "npm install buffer" and set it as a global for TcpSockets to pick it up:
|
||||
|
||||
```js
|
||||
global.Buffer = global.Buffer || require('buffer').Buffer
|
||||
```
|
||||
|
||||
### TODO
|
||||
|
||||
add select tests from node's tests for net
|
||||
|
||||
## Contributors
|
||||
|
||||
[Andy Prock](https://github.com/aprock)
|
||||
|
||||
PR's welcome!
|
||||
|
|
Loading…
Reference in New Issue