sls-rtc-backend

module
v0.0.0-...-1b1d3ba Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 26, 2020 License: MIT

README

sls-rtc-backend

こちらのバックエンドの実装です。 AWS SAMを利用させていただいております。 とにかくwebrtcを試してみたいために作ったのでいろいろザルです。 ぶっちゃけよく見ればいろいろバレて、いろいろできてしまいますが、 完全に趣味で私のポケットマネーで運営してるのでどうかいじめないでください。お願いします。

table design

dynamodbのレコードイメージ

pk connectionID roomID
connectionID:78iujhyt542qw 78iujhyt542qw johnroom
connectionID:4edfgtredf0ol 4edfgtredf0ol johnroom
roomID:johnroom

GSI

roomID(KeySchema) connectionID(projection) userName(projection)
johnroom 78iujhyt542qw john
johnroom 4edfgtredf0ol michel

使い方

wscat コマンドを使ったデバッグの例です

connect

接続

wscat -c wss://{{ api gateway endpoint }}/slsrtc

接続に成功すると接続IDとともに通知を受信します

{"type":"connected","body":"{your connection id}"}
create room

某whereなんとかとかいうビデオ会議のapiではrestで提供されているあれです。 課金とかセキュリティとか、レスポンスのハンドリング考えるとrestのほうがいいかもしれないです。 めんどくさいのでwebsocketで全部実装してしまいました。

{ "action": "createroom" }

ルームIDとともにroom-created イベントを受信するのでそのIDを控えてください

{"type":"room-created","body":"{generated room id}"}
enter room

create room で作成したroom id を指定してroomに参加します。

{"action":"enterroom","roomID":"{generated room id}"}

参加に成功するとすべてのroomメンバーにenterイベントがブロードキャストされます

{"type":"enter","roomID":"{room id}","connectionID":"{your connection id}"}

このイベントをトリガーにWebRTCのシグナリングを開始します。

leave room

誰かが接続が切れるとleaveイベントが同じルームのコネクションにブロードキャストされます。

{"type":"leave","roomID":"{room id}","connectionID":"{your connection id}"}

このイベントを利用してWebRTCのコネクションを破棄します。

Reference

https://aws.amazon.com/jp/blogs/news/simulating-amazon-dynamodb-unique-constraints-using-transactions/

Directories

Path Synopsis
cmd
internal
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL