Skip to content
xhsPublic

About

Tiny portable WebRTC Data Channel in C.

Resources

Stars

252 stars

Watchers

21 watching

Forks

Latest commit

 

History

123 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

librtcdc is a tiny WebRTC DataChannel implementation that works everywhere (Beta).

BEING REWRITEN

Features

  • Tiny <2k LOC, easy to understand/bind/extend
  • Talks with each other, latest Chrome/Chromium, Firefox, Opera?, Safari?
  • 'Official' Python binding
  • Lack of docs

Prerequisites

Python demo

import pyrtcdc
from pyrtcdc import PeerConnection

# called when the channel received a message
def on_message(channel, datatype, data):
    print 'received data from channel %s: %s' %(channel.label, data)
    channel.send(pyrtcdc.DATATYPE_STRING, 'Roger')

# called when a channel is created by the remote peer
def on_channel(peer, channel):
    print 'channel %s created' %(channel.label)
    channel.on_message = on_message

# called when a new local candidate is found
def on_candidate(peer, candidate):
    print 'local candidate sdp:\n%s' %(candidate)

# called when connected to remote peer
def on_connect(peer):
  peer.create_data_channel('demo', on_open=on_open)

# called when channel is opened
def on_open(channel):
  channel.on_message = on_message
  channel.send(pyrtcdc.DATATYPE_STRING, 'Hi')

peer = PeerConnection(on_channel, on_candidate, stun_server='stun.services.mozilla.com')

# generate local offer sdp and start candidates gathering
offer = peer.generate_offer()

# offer/answer/candidates signalling here (or somewhere)
# ...

# running until the sun cools
peer.loop()

License

BSD 2-Clause

About

Tiny portable WebRTC Data Channel in C.

Resources

Stars

252 stars

Watchers

21 watching

Forks

Used by

Contributors

Languages