Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(webrtc): add low level abstractions for handling p2p connections and audio/video calls #324

Merged
merged 8 commits into from
Nov 29, 2021

Conversation

iltumio
Copy link
Collaborator

@iltumio iltumio commented Nov 27, 2021

What this PR does πŸ“–
Adds abstractions for low level p2p connections

Which issue(s) this PR fixes πŸ”¨
No issues, it's a new feature

Special notes for reviewers πŸ—’οΈ
I had troubles with the new eslint configuration. I had to add a specific rule for prettier to make it work.
The p2pt library that has been installed comes from our internal repo Satellite-im/P2PT. It should not cause issues, but it's better to know, just in case.
yarn install command is required

Additional comments 🎀
A low level class named Wire can be used to connect two different peers on a specific channel in an easy way. It automatically makes the connection happen using Web Torrent signaling servers. An higher level class named Call can be used to initiate an audio/video conversation between two different peers. It makes use of a previously created Wire for the signaling part. Both classes are supposed to be combined together for creating the top level abstractions WebRTCUser and WebRTCManager.

@stavares843 stavares843 added the Missing Dev Review A Dev and a Dev Approver need to review the PR, then mark as Ready for QA label Nov 27, 2021
}

/**
* @method off
* @description Removes an event listener from the listener box
* @param event WebRTCEvent to unsubscribe from
* @param event event to unsubscribe from
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

event 2x


/**
* @constructor
* @param originator Idendifier of the originator
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo - Idendifier

@InfamousVague InfamousVague merged commit d2e4800 into Satellite-im:dev Nov 29, 2021
InfamousVague pushed a commit that referenced this pull request Dec 1, 2021
… Account button' (#327)

* feat(import account): enable import account button

* feat(import account): add input account component

* feat(import account): disable recover button if phrases.length < 12, update number word style

* feat(webrtc): add low level abstractions for handling p2p connections and audio/video calls (#324)

* wip: WebRTC implementation

* chore: better structure

* chore: documented all methods

* fix: prettier config

* fix: replaced p2pt dependency with the internal one

* Update encoders.ts

* fix: typos in comments and comma dangle

Co-authored-by: Matt Wisniewski <[email protected]>
Co-authored-by: Matt Wisniewski <[email protected]>

* chore: update linting rules (#326)

* Feat(Timestamp): Add timestamp to Message Actions (AP-106) (#318)

* Feat(Timestamp): Add timestamp to Message Actions (AP-106)

* fix(chat reaction): Fix 'Emoji reactions will increase if user navigates to a different page and back to chat again' (#306)

* fix(chat reaction): Fix 'Emoji reactions will increase if user navigates to a different page and back to chat again'

* put space after if

* fix(message): update timestamp message every minute (#300)

* chore: rebase dev

* chore(message): changes in response to pr review

Co-authored-by: Samir Vimercati <[email protected]>

* implements lazy loading for glyphs - AP-101 (#311)

* (update)glyphs: add vuetify import

* update(lazy load glyphs): update implemintation of glyphs to allow lazy loading brought in from vuetify.

* Nuke old code

* nuke old code

* fix - Duplicate friends are being added when page is re-rendered - AP-64 (#308)

* fixed duplicated friends issue = AP-64

* Update actions.ts

Co-authored-by: Matt Wisniewski <[email protected]>

* chore(readme): doc update (#319)

Updating readme
Adding .env.example file
Updated satellite-lucide-icons to not need ssh key uploaded to github

closes no tickets

* fix merge conflict

* Fix messageOwner in Action html

* fix(Timestamp): removed messageOwner in Action components

* fix(timestamp): add comma dangle

Co-authored-by: Eric Lee <[email protected]>
Co-authored-by: vimercati-samir <[email protected]>
Co-authored-by: Samir Vimercati <[email protected]>
Co-authored-by: Jeff Kristian <[email protected]>
Co-authored-by: David Chan <[email protected]>
Co-authored-by: Matt Wisniewski <[email protected]>
Co-authored-by: Chris Hogan <[email protected]>

* Chat Window Status Bar User Info - #AP-109 (#323)

* feat(Import Account): add remove option for numberedword component

* feat(import account): enable import account button

* feat(import account): add input account component

* feat(import account): disable recover button if phrases.length < 12, update number word style

* feat(Import Account): add remove option for numberedword component

* feat(Import Account): fix routing issue in authenticated middleware

Co-authored-by: Manuel Tumiati <[email protected]>
Co-authored-by: Matt Wisniewski <[email protected]>
Co-authored-by: Matt Wisniewski <[email protected]>
Co-authored-by: Sara Tavares <[email protected]>
Co-authored-by: Nick <[email protected]>
Co-authored-by: vimercati-samir <[email protected]>
Co-authored-by: Samir Vimercati <[email protected]>
Co-authored-by: Jeff Kristian <[email protected]>
Co-authored-by: David Chan <[email protected]>
Co-authored-by: Chris Hogan <[email protected]>
InfamousVague pushed a commit that referenced this pull request Dec 2, 2021
* fix(chat): fix 'unable to paste text into chat'

* chore(textile-store): update textile convo to have timestamps on top level (#328)

* chore(textile-store): update textile convo to have timestamps on top level

Added timestamps for user and convo on conversations

* chore(documentation/enums): update enums and add inline documentation

* feat(import account): 'Create Import Account Page, linked from Import Account button' (#327)

* feat(import account): enable import account button

* feat(import account): add input account component

* feat(import account): disable recover button if phrases.length < 12, update number word style

* feat(webrtc): add low level abstractions for handling p2p connections and audio/video calls (#324)

* wip: WebRTC implementation

* chore: better structure

* chore: documented all methods

* fix: prettier config

* fix: replaced p2pt dependency with the internal one

* Update encoders.ts

* fix: typos in comments and comma dangle

Co-authored-by: Matt Wisniewski <[email protected]>
Co-authored-by: Matt Wisniewski <[email protected]>

* chore: update linting rules (#326)

* Feat(Timestamp): Add timestamp to Message Actions (AP-106) (#318)

* Feat(Timestamp): Add timestamp to Message Actions (AP-106)

* fix(chat reaction): Fix 'Emoji reactions will increase if user navigates to a different page and back to chat again' (#306)

* fix(chat reaction): Fix 'Emoji reactions will increase if user navigates to a different page and back to chat again'

* put space after if

* fix(message): update timestamp message every minute (#300)

* chore: rebase dev

* chore(message): changes in response to pr review

Co-authored-by: Samir Vimercati <[email protected]>

* implements lazy loading for glyphs - AP-101 (#311)

* (update)glyphs: add vuetify import

* update(lazy load glyphs): update implemintation of glyphs to allow lazy loading brought in from vuetify.

* Nuke old code

* nuke old code

* fix - Duplicate friends are being added when page is re-rendered - AP-64 (#308)

* fixed duplicated friends issue = AP-64

* Update actions.ts

Co-authored-by: Matt Wisniewski <[email protected]>

* chore(readme): doc update (#319)

Updating readme
Adding .env.example file
Updated satellite-lucide-icons to not need ssh key uploaded to github

closes no tickets

* fix merge conflict

* Fix messageOwner in Action html

* fix(Timestamp): removed messageOwner in Action components

* fix(timestamp): add comma dangle

Co-authored-by: Eric Lee <[email protected]>
Co-authored-by: vimercati-samir <[email protected]>
Co-authored-by: Samir Vimercati <[email protected]>
Co-authored-by: Jeff Kristian <[email protected]>
Co-authored-by: David Chan <[email protected]>
Co-authored-by: Matt Wisniewski <[email protected]>
Co-authored-by: Chris Hogan <[email protected]>

* Chat Window Status Bar User Info - #AP-109 (#323)

* feat(Import Account): add remove option for numberedword component

* feat(import account): enable import account button

* feat(import account): add input account component

* feat(import account): disable recover button if phrases.length < 12, update number word style

* feat(Import Account): add remove option for numberedword component

* feat(Import Account): fix routing issue in authenticated middleware

Co-authored-by: Manuel Tumiati <[email protected]>
Co-authored-by: Matt Wisniewski <[email protected]>
Co-authored-by: Matt Wisniewski <[email protected]>
Co-authored-by: Sara Tavares <[email protected]>
Co-authored-by: Nick <[email protected]>
Co-authored-by: vimercati-samir <[email protected]>
Co-authored-by: Samir Vimercati <[email protected]>
Co-authored-by: Jeff Kristian <[email protected]>
Co-authored-by: David Chan <[email protected]>
Co-authored-by: Chris Hogan <[email protected]>

* fix(chat): fix 'unable to paste text into chat'

* fix(chat): fix spacing issue on chatbar

Co-authored-by: Chris Hogan <[email protected]>
Co-authored-by: Manuel Tumiati <[email protected]>
Co-authored-by: Matt Wisniewski <[email protected]>
Co-authored-by: Matt Wisniewski <[email protected]>
Co-authored-by: Sara Tavares <[email protected]>
Co-authored-by: Nick <[email protected]>
Co-authored-by: vimercati-samir <[email protected]>
Co-authored-by: Samir Vimercati <[email protected]>
Co-authored-by: Jeff Kristian <[email protected]>
Co-authored-by: David Chan <[email protected]>
InfamousVague pushed a commit that referenced this pull request Dec 5, 2021
… and audio/video calls (#324)

* wip: WebRTC implementation

* chore: better structure

* chore: documented all methods

* fix: prettier config

* fix: replaced p2pt dependency with the internal one

* Update encoders.ts

* fix: typos in comments and comma dangle

Co-authored-by: Matt Wisniewski <[email protected]>
Co-authored-by: Matt Wisniewski <[email protected]>
InfamousVague pushed a commit that referenced this pull request Dec 5, 2021
… Account button' (#327)

* feat(import account): enable import account button

* feat(import account): add input account component

* feat(import account): disable recover button if phrases.length < 12, update number word style

* feat(webrtc): add low level abstractions for handling p2p connections and audio/video calls (#324)

* wip: WebRTC implementation

* chore: better structure

* chore: documented all methods

* fix: prettier config

* fix: replaced p2pt dependency with the internal one

* Update encoders.ts

* fix: typos in comments and comma dangle

Co-authored-by: Matt Wisniewski <[email protected]>
Co-authored-by: Matt Wisniewski <[email protected]>

* chore: update linting rules (#326)

* Feat(Timestamp): Add timestamp to Message Actions (AP-106) (#318)

* Feat(Timestamp): Add timestamp to Message Actions (AP-106)

* fix(chat reaction): Fix 'Emoji reactions will increase if user navigates to a different page and back to chat again' (#306)

* fix(chat reaction): Fix 'Emoji reactions will increase if user navigates to a different page and back to chat again'

* put space after if

* fix(message): update timestamp message every minute (#300)

* chore: rebase dev

* chore(message): changes in response to pr review

Co-authored-by: Samir Vimercati <[email protected]>

* implements lazy loading for glyphs - AP-101 (#311)

* (update)glyphs: add vuetify import

* update(lazy load glyphs): update implemintation of glyphs to allow lazy loading brought in from vuetify.

* Nuke old code

* nuke old code

* fix - Duplicate friends are being added when page is re-rendered - AP-64 (#308)

* fixed duplicated friends issue = AP-64

* Update actions.ts

Co-authored-by: Matt Wisniewski <[email protected]>

* chore(readme): doc update (#319)

Updating readme
Adding .env.example file
Updated satellite-lucide-icons to not need ssh key uploaded to github

closes no tickets

* fix merge conflict

* Fix messageOwner in Action html

* fix(Timestamp): removed messageOwner in Action components

* fix(timestamp): add comma dangle

Co-authored-by: Eric Lee <[email protected]>
Co-authored-by: vimercati-samir <[email protected]>
Co-authored-by: Samir Vimercati <[email protected]>
Co-authored-by: Jeff Kristian <[email protected]>
Co-authored-by: David Chan <[email protected]>
Co-authored-by: Matt Wisniewski <[email protected]>
Co-authored-by: Chris Hogan <[email protected]>

* Chat Window Status Bar User Info - #AP-109 (#323)

* feat(Import Account): add remove option for numberedword component

* feat(import account): enable import account button

* feat(import account): add input account component

* feat(import account): disable recover button if phrases.length < 12, update number word style

* feat(Import Account): add remove option for numberedword component

* feat(Import Account): fix routing issue in authenticated middleware

Co-authored-by: Manuel Tumiati <[email protected]>
Co-authored-by: Matt Wisniewski <[email protected]>
Co-authored-by: Matt Wisniewski <[email protected]>
Co-authored-by: Sara Tavares <[email protected]>
Co-authored-by: Nick <[email protected]>
Co-authored-by: vimercati-samir <[email protected]>
Co-authored-by: Samir Vimercati <[email protected]>
Co-authored-by: Jeff Kristian <[email protected]>
Co-authored-by: David Chan <[email protected]>
Co-authored-by: Chris Hogan <[email protected]>
InfamousVague pushed a commit that referenced this pull request Dec 5, 2021
* fix(chat): fix 'unable to paste text into chat'

* chore(textile-store): update textile convo to have timestamps on top level (#328)

* chore(textile-store): update textile convo to have timestamps on top level

Added timestamps for user and convo on conversations

* chore(documentation/enums): update enums and add inline documentation

* feat(import account): 'Create Import Account Page, linked from Import Account button' (#327)

* feat(import account): enable import account button

* feat(import account): add input account component

* feat(import account): disable recover button if phrases.length < 12, update number word style

* feat(webrtc): add low level abstractions for handling p2p connections and audio/video calls (#324)

* wip: WebRTC implementation

* chore: better structure

* chore: documented all methods

* fix: prettier config

* fix: replaced p2pt dependency with the internal one

* Update encoders.ts

* fix: typos in comments and comma dangle

Co-authored-by: Matt Wisniewski <[email protected]>
Co-authored-by: Matt Wisniewski <[email protected]>

* chore: update linting rules (#326)

* Feat(Timestamp): Add timestamp to Message Actions (AP-106) (#318)

* Feat(Timestamp): Add timestamp to Message Actions (AP-106)

* fix(chat reaction): Fix 'Emoji reactions will increase if user navigates to a different page and back to chat again' (#306)

* fix(chat reaction): Fix 'Emoji reactions will increase if user navigates to a different page and back to chat again'

* put space after if

* fix(message): update timestamp message every minute (#300)

* chore: rebase dev

* chore(message): changes in response to pr review

Co-authored-by: Samir Vimercati <[email protected]>

* implements lazy loading for glyphs - AP-101 (#311)

* (update)glyphs: add vuetify import

* update(lazy load glyphs): update implemintation of glyphs to allow lazy loading brought in from vuetify.

* Nuke old code

* nuke old code

* fix - Duplicate friends are being added when page is re-rendered - AP-64 (#308)

* fixed duplicated friends issue = AP-64

* Update actions.ts

Co-authored-by: Matt Wisniewski <[email protected]>

* chore(readme): doc update (#319)

Updating readme
Adding .env.example file
Updated satellite-lucide-icons to not need ssh key uploaded to github

closes no tickets

* fix merge conflict

* Fix messageOwner in Action html

* fix(Timestamp): removed messageOwner in Action components

* fix(timestamp): add comma dangle

Co-authored-by: Eric Lee <[email protected]>
Co-authored-by: vimercati-samir <[email protected]>
Co-authored-by: Samir Vimercati <[email protected]>
Co-authored-by: Jeff Kristian <[email protected]>
Co-authored-by: David Chan <[email protected]>
Co-authored-by: Matt Wisniewski <[email protected]>
Co-authored-by: Chris Hogan <[email protected]>

* Chat Window Status Bar User Info - #AP-109 (#323)

* feat(Import Account): add remove option for numberedword component

* feat(import account): enable import account button

* feat(import account): add input account component

* feat(import account): disable recover button if phrases.length < 12, update number word style

* feat(Import Account): add remove option for numberedword component

* feat(Import Account): fix routing issue in authenticated middleware

Co-authored-by: Manuel Tumiati <[email protected]>
Co-authored-by: Matt Wisniewski <[email protected]>
Co-authored-by: Matt Wisniewski <[email protected]>
Co-authored-by: Sara Tavares <[email protected]>
Co-authored-by: Nick <[email protected]>
Co-authored-by: vimercati-samir <[email protected]>
Co-authored-by: Samir Vimercati <[email protected]>
Co-authored-by: Jeff Kristian <[email protected]>
Co-authored-by: David Chan <[email protected]>
Co-authored-by: Chris Hogan <[email protected]>

* fix(chat): fix 'unable to paste text into chat'

* fix(chat): fix spacing issue on chatbar

Co-authored-by: Chris Hogan <[email protected]>
Co-authored-by: Manuel Tumiati <[email protected]>
Co-authored-by: Matt Wisniewski <[email protected]>
Co-authored-by: Matt Wisniewski <[email protected]>
Co-authored-by: Sara Tavares <[email protected]>
Co-authored-by: Nick <[email protected]>
Co-authored-by: vimercati-samir <[email protected]>
Co-authored-by: Samir Vimercati <[email protected]>
Co-authored-by: Jeff Kristian <[email protected]>
Co-authored-by: David Chan <[email protected]>
@iltumio iltumio deleted the feature-webrtc branch January 5, 2022 18:56
@stavares843 stavares843 removed the Missing Dev Review A Dev and a Dev Approver need to review the PR, then mark as Ready for QA label Apr 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants