node's dgram for react-native
Go to file
Dmitry Novotochinov 6e9a817326
add .git to npmignore
2018-09-05 22:28:44 +03:00
android update android compileSdkVersion and buildToolsVersion to 26 2018-08-30 21:03:32 +03:00
examples/rctsockets update example and documentation for rn 0.29.2 2016-07-20 15:56:54 -07:00
ios Bubbled up reusePort to the API as an option on createSocket 2017-10-24 23:31:16 -04:00
.gitignore ios start using lightweight generics 2015-12-16 11:47:43 -08:00
.npmignore add .git to npmignore 2018-09-05 22:28:44 +03:00
LICENSE return lost readme, license 2015-05-10 10:50:44 -04:00
README.md Update README.md 2016-09-14 23:03:34 +02:00
UdpSocket.js fix bindArgs on android (broken by 2.2.0) 2017-10-25 08:42:03 -04:00
UdpSockets.js allow options to be passed into createSocket 2016-11-07 14:53:58 -08:00
package.json 2.3.1 2017-12-08 10:24:57 -05:00

README.md

UDP in React Native

node's dgram API in React Native

This module is used by Tradle

Install

npm install --save react-native-udp
react-native link react-native-udp
# OR, if you're using react-native older than 0.31:
rnpm link react-native-udp

Android

  • Register and load the Native Module in your Main application (import, getPackages)
    • Note: prior to react-native 0.29.2, this should happen in your Main Activity
...

import com.tradle.react.UdpSocketsModule;			// <--- import //

public class MainApplication extends Application implements ReactApplication {
	...
	@Override
	protected List<ReactPackage> getPackages() {
		return Arrays.<ReactPackage>asList(
			new MainReactPackage(),
			new UdpSocketsModule()				// <- add here //
		);
	}
}

Buckle up, Dorothy

Usage

package.json

only if you want to write require('dgram') in your javascript

{
  "browser": {
    "dgram": "react-native-udp"
  }
}

JS

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

var dgram = require('dgram')
// OR, if not shimming via package.json "browser" field:
// var dgram = require('react-native-udp')
var socket = dgram.createSocket('udp4')
socket.bind(12345)
socket.once('listening', function() {
  var buf = toByteArray('excellent!')
  socket.send(buf, 0, buf.length, remotePort, remoteHost, function(err) {
    if (err) throw err

    console.log('message was sent')
  })
})

socket.on('message', function(msg, rinfo) {
  console.log('message was received', msg)
})

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 UdpSockets to pick it up:

global.Buffer = global.Buffer || require('buffer').Buffer

TODO

add select tests from node's tests for dgram

Contributors

Mark Vayngrib
Ellen Katsnelson
Tradle, Inc.

Andy Prock

PR's welcome!