add more info

peers
This commit is contained in:
Jack Chakany 2023-03-14 13:34:36 -04:00 committed by GitHub
parent da4a44bee9
commit 6566b4c458
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

12
100.md
View File

@ -1,11 +1,14 @@
# NIP-100 WebRTC # NIP-100 WebRTC
`draft` `optional` `author:jacany` `draft` `optional` `author:jacany`
This NIP defines how to do WebRTC communication over nostr This NIP defines how to do WebRTC communication over nostr.
## Defining Rooms ## Defining Rooms
Rooms are essentially the space that you will be connected to. This must be defined by a `r` tag following the pubkey of the person you are connected to or some other identifier (maybe a lobby id for a joinable voice channel, etc.) Rooms are essentially the space that you will be connected to. This must be defined by a `r` tag following the pubkey of the person you are connected to or some other identifier (maybe a lobby id for a joinable voice channel, etc.)
## Peers
Who the client connects to can be chosen by the client. Ex: you can connect to everyone peer-to-peer or a WebRTC media server that is listening on nostr relays.
## Encryption ## Encryption
The `content` field and `r` tag of types `offer`, `answer`, and `candidate` should be encrypted, similarly to `NIP-04`. The `content` field and `r` tag of types `offer`, `answer`, and `candidate` should be encrypted, similarly to `NIP-04`.
Clients MUST listen for the `p` tag containing their pubkey so they know that event is intended for them Clients MUST listen for the `p` tag containing their pubkey so they know that event is intended for them
@ -13,7 +16,7 @@ Clients MUST listen for the `p` tag containing their pubkey so they know that ev
⚠️ `content` FIELDS SHOULD BE JSON STRINGIFIED, AND THEN ENCRYPTED. ⚠️ ⚠️ `content` FIELDS SHOULD BE JSON STRINGIFIED, AND THEN ENCRYPTED. ⚠️
### Broadcasting that you are present ### Broadcasting that you are present
Announces that you are here, and ready to connect to others. Announces that the client is ready to connect to others.
The connection ID is inferred from the provided pubkey. The connection ID is inferred from the provided pubkey.
```json ```json
{ {
@ -27,6 +30,7 @@ The connection ID is inferred from the provided pubkey.
``` ```
### Closing ### Closing
This is used when disconnecting from everybody else. Ex: when browser tab is closed.
```json ```json
{ {
"kind": 25050, "kind": 25050,
@ -88,6 +92,4 @@ Used when responding to a `type:connect`. Offering to connect to that peer.
<misc> <misc>
} }
} }
``` ```
Essentially, just directly feed what comes out of the WebRTC functions straight into the `content` field after encrypting it.