Package Exports
- react-native-udp
- react-native-udp/UdpSockets.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (react-native-udp) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
UDP in React Native
node's dgram API in React Native
This module is used by Tradle
Compatibility
| React Native Version | Use Version |
|---|---|
| <=0.59.10 | <=2.7.0 |
| >=0.60.0 | >=3.0.0 |
Installion
Create a new react-native project. Check react-native getting started
In your project dir:
npm install --save react-native-udpLink in the native dependency
For versions >= 3.0.0:
cd ios
pod installFor versions <=2.7.0:
react-native link react-native-udp
# OR, if you're using react-native older than 0.31:
rnpm link react-native-udpAndroid (only for versions <=2.7.0)
- 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)
})Debugging
To see the events emitted from the native modules, supply the debug option when creating the socket:
const socket = dgram.createSocket({
type: 'udp4',
debug: true,
});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').BufferTODO
add select tests from node's tests for dgram
Contributors
Mark Vayngrib Ellen Katsnelson Tradle, Inc.
PR's welcome!