Giter Site home page Giter Site logo

reactnativ / react-native-ping Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rojohub/react-native-ping

0.0 0.0 0.0 362 KB

Highly accurate ICMP Ping controller for React Native

Home Page: https://www.npmjs.com/package/react-native-ping

JavaScript 4.11% Ruby 1.68% C 3.67% Objective-C 59.07% Java 30.71% Starlark 0.76%

react-native-ping's Introduction

react-native-ping

NPM version build status Test coverage David deps node version npm download npm license

Getting started

$ npm install react-native-ping --save or $ yarn add react-native-ping

Linking (for React Native <= 0.59 only, React Native >= 0.60 skip this as auto-linking should work)

Mostly automatic installation

$ react-native link react-native-ping

Manual installation

iOS

  1. In XCode, in the project navigator, right click LibrariesAdd Files to [your project's name]
  2. Go to node_modulesreact-native-ping and add RNReactNativePing.xcodeproj
  3. In XCode, in the project navigator, select your project. Add libRNReactNativePing.a to your project's Build PhasesLink Binary With Libraries
  4. Run your project (Cmd+R)<

Android

  1. Open up android/app/src/main/java/[...]/MainActivity.java
  • Add import com.reactlibrary.LHPing.RNReactNativePingPackage; to the imports at the top of the file
  • Add new RNReactNativePingPackage() to the list returned by the getPackages() method
  1. Append the following lines to android/settings.gradle:
  include ':react-native-ping'
  project(':react-native-ping').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-ping/android')
  1. Insert the following lines inside the dependencies block in android/app/build.gradle:
  compile project(':react-native-ping')
  1. (optional)

You can override this settings by adding a Project-wide gradle configuration properties for use by all modules in your ReactNative project by adding the below to android/build.gradle file,

buildscript {...}

allprojects {...}

/**
* Project-wide gradle configuration properties for use by all modules
*/
ext {
    compileSdkVersion           = 26
    targetSdkVersion            = 26
    buildToolsVersion           = "26.0.2"
    googlePlayServicesVersion   = "12.0.1"
    googlePlayServicesVisionVersion = "15.0.2"
    supportLibVersion           = "27.1.0"
}

Usage

Get RTT (Round-trip delay time)

import Ping from 'react-native-ping';

...

try {
  /**
   *
   * Get RTT (Round-trip delay time)
   *
   * @static
   * @param {string} ipAddress - For example : 8.8.8.8
   * @param {Object} option - Some optional operations
   * @param {number} option.timeout - timeout
   * @returns
   * @memberof Ping
   */
  const ms = await Ping.start('114.114.114.114',{ timeout: 1000 });
  console.log(ms);
} catch (error) {
  console.log('special code',error.code, error.message);
}

About Error

Code Message platform
"0" PingUtil_Message_Timeout iOS,Android
"1" PingUtil_Message_PreviousPingIsStillRunning /
"2" PingUtil_Message_HostErrorNotSetHost iOS,Android
"3" PingUtil_Message_HostErrorUnknown iOS,Android
"4" PingUtil_Message_HostErrorHostNotFound Only iOS
"5" PingUtil_Message_Unknown Only iOS

Get Traffic Stats

Property Description
receivedNetworkSpeed Download Speed per second
sendNetworkSpeed Upload Speed per second
receivedNetworkTotal Download Total
sendNetworkTotal Upload Total
import Ping from 'react-native-ping';

...

const {
  receivedNetworkSpeed,
  sendNetworkSpeed,
  receivedNetworkTotal,
  sendNetworkTotal
} = await Ping.getTrafficStats();

react-native-ping's People

Contributors

rojohub avatar renovate-bot avatar ishan97 avatar swcisel avatar reactnativ 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.