2015-05-10 14:50:44 +00:00
# UDP in React Native
node's [dgram ](https://nodejs.org/api/dgram.html ) API in React Native
2015-05-10 14:58:08 +00:00
This module is used by [Tradle ](https://github.com/tradle )
2015-05-10 14:50:44 +00:00
## Install
* Create a new react-native project. [Check react-native getting started ](http://facebook.github.io/react-native/docs/getting-started.html#content )
2015-05-11 17:51:52 +00:00
* In your project dir:
2015-05-10 14:50:44 +00:00
```
npm install --save react-native-udp
```
2015-05-10 15:03:52 +00:00
* Drag UdpSockets.xcodeproj from node_modules/react-native-udp into your XCode project. Click on the project in XCode, go to Build Phases, then Link Binary With Libraries and add libUdpSockets.a
2015-05-10 14:50:44 +00:00
Buckle up, Dorothy
## Usage
### package.json
_only if you want to write require('dgram') in your javascript_
```json
{
"browser": {
"dgram": "react-native-udp"
}
}
```
### JS
_see/run index.ios.js for a complete example, but basically it's just like dgram_
2015-05-10 14:58:41 +00:00
```js
2015-05-10 14:50:44 +00:00
var dgram = require('dgram')
// OR, if not shimming via package.json "browser" field:
2015-05-10 14:55:37 +00:00
// var dgram = require('UdpSockets')
2015-05-10 14:50:44 +00:00
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)
})
2015-05-10 15:03:52 +00:00
```
2015-05-10 14:50:44 +00:00
### Note
2015-05-10 15:03:52 +00:00
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:
2015-05-10 14:50:44 +00:00
```js
global.Buffer = global.Buffer || require('buffer').Buffer
```
2015-05-10 14:58:08 +00:00
### TODO
add select tests from node's tests for dgram
2015-05-10 14:50:44 +00:00
## Contributors
2015-05-10 15:03:52 +00:00
[Mark Vayngrib ](https://github.com/mvayngrib )
[Ellen Katsnelson ](https://github.com/pgmemk )
2015-05-10 14:58:08 +00:00
[Tradle, Inc. ](https://github.com/tradle/about/wiki )
2015-05-11 17:51:52 +00:00
PR's welcome!