All Projects → tockn → singo

tockn / singo

Licence: MIT License
Simple WebRTC Signaling Server written in Go

Programming Languages

go
31211 projects - #10 most used programming language
typescript
32286 projects
javascript
184084 projects - #8 most used programming language
Makefile
30231 projects
Dockerfile
14818 projects
HTML
75241 projects

Projects that are alternatives of or similar to singo

webrtc-hotwire-rails
A video chat app demonstration using Hotwire and Ruby on Rails
Stars: ✭ 38 (-33.33%)
Mutual labels:  webrtc, webrtc-demos, webrtc-signaling
Webrtc Experiment
WebRTC, WebRTC and WebRTC. Everything here is all about WebRTC!!
Stars: ✭ 10,335 (+18031.58%)
Mutual labels:  webrtc, webrtc-demos
foxrtc
media sdk based on webrtc
Stars: ✭ 36 (-36.84%)
Mutual labels:  webrtc, webrtc-demos
Samples
WebRTC Web demos and samples
Stars: ✭ 11,318 (+19756.14%)
Mutual labels:  webrtc, webrtc-demos
Webrtc Demo
webrtc 演示示例
Stars: ✭ 74 (+29.82%)
Mutual labels:  webrtc, webrtc-demos
Learning Webrtc
Codes and notes while learning webrtc
Stars: ✭ 98 (+71.93%)
Mutual labels:  webrtc, webrtc-demos
Wave Share
Serverless, peer-to-peer, local file sharing through sound
Stars: ✭ 1,641 (+2778.95%)
Mutual labels:  webrtc, webrtc-signaling
Webrtc
A reference gradle project that let you explore WebRTC Android in Android Studio.
Stars: ✭ 562 (+885.96%)
Mutual labels:  webrtc, webrtc-demos
React Webrtc
Video chat using webRTC and react
Stars: ✭ 168 (+194.74%)
Mutual labels:  webrtc, webrtc-demos
Rtcmulticonnection
RTCMultiConnection is a WebRTC JavaScript library for peer-to-peer applications (screen sharing, audio/video conferencing, file sharing, media streaming etc.)
Stars: ✭ 2,187 (+3736.84%)
Mutual labels:  webrtc, webrtc-demos
Cuckoo
🎥 Cuckoo - A free anonymous video-calling web application built with WebRTC and React that provides peer-to-peer video and audio communication in a web browser with no plugins or extensions required.
Stars: ✭ 195 (+242.11%)
Mutual labels:  webrtc, webrtc-demos
Analysisavp
音视频学习,相关文件格式/协议分析。h264 nalu aac adts flv
Stars: ✭ 38 (-33.33%)
Mutual labels:  webrtc, webrtc-demos
Webrtc Text Chat Tutorial
WebRTC Chat Tutorial for Scaledrone Realtime Messaging Service
Stars: ✭ 24 (-57.89%)
Mutual labels:  webrtc, webrtc-demos
Translator
Translator.js is a JavaScript library built top on Google Speech-Recognition & Translation API to transcript and translate voice and text. It supports many locales and brings globalization in WebRTC! https://www.webrtc-experiment.com/Translator/
Stars: ✭ 103 (+80.7%)
Mutual labels:  webrtc, webrtc-demos
Webrtc android
webrtc VideoCall VideoConference 视频通话 视频会议
Stars: ✭ 764 (+1240.35%)
Mutual labels:  webrtc, webrtc-demos
Webrtc Data Channel Demo
WebRTC Data Channel demo
Stars: ✭ 116 (+103.51%)
Mutual labels:  webrtc, webrtc-demos
Webrtcchat
🔏 Pure Browser To Browser Chat (STUN & ICE Servers optional)
Stars: ✭ 230 (+303.51%)
Mutual labels:  webrtc, webrtc-demos
Starrtc Web Demo
一对一voip视频聊天,直播连麦,多人视频会议,在线会议web演示:
Stars: ✭ 281 (+392.98%)
Mutual labels:  webrtc, webrtc-demos
Detectrtc
DetectRTC is a tiny JavaScript library that can be used to detect WebRTC features e.g. system having speakers, microphone or webcam, screen capturing is supported, number of audio/video devices etc. https://www.webrtc-experiment.com/DetectRTC/
Stars: ✭ 509 (+792.98%)
Mutual labels:  webrtc, webrtc-demos
Workerman Webrtc
php webrtc demo based on workerman
Stars: ✭ 161 (+182.46%)
Mutual labels:  webrtc, webrtc-demos

singo

icon

The Gopher character is based on the Go mascot designed byRenée French.

issue#1

singoとは

singoはフルメッシュP2Pによる複数人通信が可能なWebRTCシグナリングサーバです。
JavaScript (TypeScript)によるSDKを提供しています。また、サンプルとして簡単なビデオ通話システムも用意しています。

image

使い方

シグナリングサーバのみを立ち上げる

Dockerを使う場合

$ make docker-run

ローカルでビルドして使う場合

$ go version
> go version go1.14 darwin/amd64

$ make run

デフォルトでは ws://localhost:5000/connect でコネクションを張れます。

シグナリングサーバとサンプルのビデオ通話システムを立ち上げる

Dockerを使う場合

$ make docker-run-demo

ローカルでビルドして使う場合

$ go version
> go version go1.14 darwin/amd64

$ make run-demo

http://localhost:5000 にアクセスするとビデオ会議システムが使えます。

SDK

JavaScript SDK

処理の流れ

シーケンス図

sequence

クライアントとsingoはWebSocketでコネクションを張り、各メッセージをやり取りします。主要なメッセージとして以下があります。

クライアント側から

定義

  • join
    • roomに入るときに送ります。roomIDをつけます
  • offer
    • 特定のclientに対してSDP Offerを送信します
  • answer
    • 特定のclientに対してSDP Answerを送信します
singo側から

定義

  • notify-client-id
    • joinしたclientに対してclient idを通知します
  • offer
    • 特定のclientに対してSDP Offerを送信します
  • answer
    • 特定のclientに対してSDP Answerを送信します
  • new-client
    • roomに新たにjoinしてきたclient情報を通知します
  • leave-client
    • roomから退出したclient情報を通知します

LICENCE

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].