Giter Club home page Giter Club logo

react-native-udp's Introduction

react-native-udp

React Native UDP socket API for Android & iOS. It allows you to create UDP sockets, imitating Node's dgram API functionalities (check each method documentation for more information).

This module is used by Tradle.

Table of Contents

Getting started

Install the library using either Yarn:

yarn add react-native-udp

or npm:

npm install --save react-native-udp

Using React Native >= 0.60

Linking the package manually is not required anymore with Autolinking.

  • iOS Platform:

    $ cd ios && pod install && cd .. # CocoaPods on iOS needs this extra step

Using React Native < 0.60

You then need to link the native parts of the library for the platforms you are using. The easiest way to link the library is using the CLI tool by running this command from the root of your project:

$ react-native link react-native-udp

If you can't or don't want to use the CLI tool, you can also manually link the library using the instructions below (click on the arrow to show them):

Manually link the library on iOS
  1. In XCode, in the project navigator, right click LibrariesAdd Files to [your project's name]
  2. Go to node_modulesreact-native-udp and add UdpSockets.xcodeproj
  3. In XCode, in the project navigator, select your project. Add libUdpSockets.a to your project's Build PhasesLink Binary With Libraries
  4. Run your project (Cmd+R)<
Manually link the library on Android
  1. Open up android/app/src/main/java/[...]/MainApplication.java
  • Add import com.tradle.react.UdpSocketsModule; to the imports at the top of the file
  • Add new UdpSocketsModule() to the list returned by the getPackages() method
  1. Append the following lines to android/settings.gradle:
    include ':react-native-udp'
    project(':react-native-udp').projectDir = new File(rootProject.projectDir, 	'../node_modules/react-native-udp/android')
    
  2. Insert the following lines inside the dependencies block in android/app/build.gradle: compile project(':react-native-udp')

React Native Compatibility

React Native Version Use Version
<=0.59.10 <=2.7.0
>=0.60.0 >=3.0.0

Usage

see/run index.js for a complete example, but the interface is like dgram's

import dgram from 'react-native-udp'

const socket = dgram.createSocket('udp4')
socket.bind(12345)
socket.once('listening', function() {
  socket.send('Hello World!', undefined, undefined, remotePort, remoteHost, function(err) {
    if (err) throw err

    console.log('Message sent!')
  })
})

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

Debugging

To log all info emitted from the socket, add debug option when creating the socket:

const socket = dgram.createSocket({
  type: 'udp4',
  debug: true,
})

Maintainers

License

The library is released under the MIT license. For more information see LICENSE.

react-native-udp's People

Contributors

mvayngrib avatar aprock avatar rapsssito avatar semantic-release-bot avatar intmainvoid avatar the-ress avatar atticoos avatar glenne avatar syaau avatar chris-griffin avatar christophermark avatar cristovao-trevisan avatar damnjan avatar gev avatar fmorau avatar jmc420 avatar marcusstenbeck avatar almostintuitive avatar fnando avatar thibmaek avatar punarinta avatar yesmeck avatar dependabot[bot] avatar jackyy415 avatar tohjg avatar zi6xuan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.