Code Monkey home page Code Monkey logo

chatio's People

Contributors

zaba505 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

chatio's Issues

perf(p2p): unique protocol pitfalls

Having a unique protocol per call requires peer discovery to try and dial everyone until a match is found. For very large networks this could be an issue.

bug(join): prevent joining to a non-existent call id

Currently, any number can be entered in the call id field for Join and it will "join" that call. While this is useful for testing purposes, it is most likely not desirable for production.

To keep MVP development moving at a quick pace this is blocked until #11 is completed.

privacy(call): use content addressing to help prevent call id leakage through protocol

Currently, the call id is used for specifying the protocol nodes communicate with it. This leaks the call id via the libp2p protocol negotiation which then opens an unnecessary attack vector for bad actors to take advantage of. A potential solution is to mandate a password for each call for encrypting each call id, as well as, using a non-unique protocol for at minimum chat messages.

See #25 for discussion about a non-unique vs unique protocol

bug(rendezvous): 429 response code from google cloud

When testing on a single computer/local network, devices can be rate limited to due Too Many Requests to the signalling server to discover more peers. A simple fix is to lengthen the interval with which the rendezvous server is called. This should also be configurable in some sort of advanced settings section

feat(call): stream video and audio over webrtc

Initial Thoughts

The underlying WebRTC transport needs to be accessed from the libp2p node or a new WebRTC connection needs to be established for streaming audio and video while text messaging and call management goes through the libp2p network.

build(ci/cd): fix cache issue

Whenever a new job uses the cached node_modules instead of installing fresh, the Quasar CLI reports:

Error Unknown command "build"


  ___                             
 / _ \ _   _  __ _ ___  __ _ _ __ 
| | | | | | |/ _` / __|/ _` | '__|
| |_| | |_| | (_| \__ \ (_| | |   
 \__\_\\__,_|\__,_|___/\__,_|_|   
 

  Running @quasar/cli ***.2.1

  Example usage
    $ quasar <command> <options>

  Help for a command
    $ quasar <command> --help
    $ quasar <command> -h

  Options
    --version, -v Print Quasar CLI version

  Commands
    create    Create a project folder
    info      Display info about your machine
                   (and your App if in a project folder)
    upgrade   Check (and optionally) upgrade Quasar packages
                   from a Quasar project folder
    serve     Create an ad-hoc server on App's distributables
    help, -h  Displays this message

  --------------
  => IMPORTANT !
  => Trigger this inside of a Quasar project (and npm/yarn install) for more commands.
  --------------

feat(call): support starting with a custom call id

Even though it's not the most secure approach to starting calls but that tradeoff can be determined by the user. This feature should not be the default user experience. For example, the auto-generated id could be prefilled in the call id and if the user would like to they could delete it and type in whatever they want.

bug(nat): no relay support for webrtc stun failure

I have so far come across a weird issue in firefox when trying to connect to another LAN device. The error recommends having a TURN server in the case of STUN failing. This may be avoidable by leveraging libp2ps' circuit-relay protocol but further investigating must be done to determine which could provide better bandwidth and latency.

Firefox WebRTC Error:

WebRTC: ICE failed, add a TURN server and see about:webrtc for more details

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.