Go to file
Ryan Lee b4e27c612e Fixed OnIceConnectionChange crash bug 2017-10-30 20:38:08 +09:00
cmake Changed unmodified names 2017-10-27 20:57:19 +09:00
examples A header file name changed 2017-10-24 23:18:02 +09:00
src Fixed OnIceConnectionChange crash bug 2017-10-30 20:38:08 +09:00
.gitignore Updated .gitignore 2017-10-23 00:39:49 +09:00
API.md A header file name changed 2017-10-24 23:18:02 +09:00
CMakeLists.txt Changed unmodified names 2017-10-27 20:57:19 +09:00
LICENSE Changed unmodified names 2017-10-27 20:57:19 +09:00
README.md A project name changed 2017-10-24 22:30:30 +09:00
webrtcbranch Supports WebRTC branch head 60 2017-10-23 00:39:33 +09:00

README.md

PeerApi

A peer-to-peer C++ library for network.

  • Network connection over firewall or NAT
  • No ip address and port number required
  • Support NAT traversal and WebRTC

Quick start

Peer A (listen)

Peer peer("PEER_A");

peer.On("message", function_peer(string peer_id, char* data, size_t size) {
  std::cout << "A message has been received." << std::endl;
});

peer.Open();

Peer B (connect)

Peer peer("PEER_B");

peer.On("open", function_peer(string peer_id) {
  peer.>Connect("PEER_A");
});

peer.On("connect", function_peer(string peer_id) {
  peer.Send("PEER_A", "Hello");
});

peer.Open();

API

See the API.md document.

Example

See the examples directory.

Build

The currently supported build platforms are Windows, Mac OS X and Linux.

  • Visual Studio 2015 Update 2 or later on Windows. (Windows 7 x64 or later)
  • Linux 64bit - Most luck on Ubuntu 14.04
  • Xcode 5 or later on OS X - Latest Xcode is recommended
  • CMake 3.2 or later

Before You Start

First, be sure to install prerequisite software and get the WebRTC source.

In the WebRTC development instruction

  • Follow 'Before You Start' step
  • Follow 'Getting the code' step

Currently PeerApi supports WebRTC branch-heads/60 so run

$ git checkout -b peerapi60 refs/remotes/branch-heads/60

To update build toolchain and dependencies of WebRTC, run:

$ gclient sync

Note that you don't have to follow 'Generating Ninja project files' or 'Compiling' step. PeerApi will do that internally.

Build PeerApi

Generate the build files

$ cd /path/to/src
$ mkdir build
$ cd build
$ cmake .. -DWEBRTC_ROOT_DIR=/path/to/webrtc-checkout/src \
      -DDEPOT_TOOLS_DIR=/path/to/depot_tools

NOTE On windows, you can generate Visual Studio 2015 project.

$ cmake -G "Visual Studio 14 2015" .. \
      -DWEBRTC_ROOT_DIR=/path/to/webrtc-checkout/src \
      -DDEPOT_TOOLS_DIR=/path/to/depot_tools

Finally you can build generated makefile.

$ make