node's dgram for react-native
Go to file
Andy Prock 2756af6c76 update example and documentation for rn 0.29.2
Introduced rnpm the new "standard" for linking to native modules
Removed the CocoaPod podspec
Updated the sample project to use react-native 0.29.2
Sample now shows the socket information on the main page
2016-07-20 15:56:54 -07:00
android Fixes #14 2015-12-21 17:19:59 -08:00
examples/rctsockets update example and documentation for rn 0.29.2 2016-07-20 15:56:54 -07:00
ios update example and documentation for rn 0.29.2 2016-07-20 15:56:54 -07:00
.gitignore ios start using lightweight generics 2015-12-16 11:47:43 -08:00
LICENSE return lost readme, license 2015-05-10 10:50:44 -04:00
README.md update example and documentation for rn 0.29.2 2016-07-20 15:56:54 -07:00
UdpSocket.js remove received noisy message received log 2016-01-13 14:43:56 -08:00
UdpSockets.js initial android support 2015-09-25 14:58:32 -07:00
package.json 1.2.4 2016-01-15 15:52:13 -08: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
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!