Giter Site home page Giter Site logo

sa's Issues

Write requirements

  • Use Cases
  • Non-functional
    • Check EngProj doc. There's a cited standard way of doing these (what sections there are)

Proof of Concept

This works already

  • Server 1 => puts something in DHT
  • Server 2 => reads something from DHT

We can add

  • Peer 1 => connects via Websocket to Server 1 and sends message (that

The rest will work as-is

If we want to go one step further

  • Peer 2 => connects via Websocket to Server 1 and gets the message (pushed)

Investigate new idea

  • Set up a few servers that make up a DHT
  • Each peer connects to one of these servers
    • A peer can also download the server software and become part of the DHT, independently
  • The server handles new peers, and when a peer wants to connect to another peer, would facilitate the exchange of connection details, and prepare both peers that they're going to be contacted directly

Persönliche Reflektion

Persönliche Berichte einschliesslich (selbst-)kritische Reflexion der Studierenden zu ihren Erfahrungen bei der Arbeit.

Different project proposal

We would rather use this architecture:

20180919_161615 1

Basically, we write a P2P API that's responsible for exchanging connection details between peers. It would consist of an API client, running in a browser, and an API server, running in whatever language would suit. They would communicate over HTTP. This would all run on each client!

The API server would have a DHT library at its disposal, which is joined in a DHT with other P2P servers. The API client would talk to the browser's built in WebRTC component.

Whenever the API client requests a peer's connection details, the server would in turn ask the DHT library. The client then hands this information over to the WebRTC component. The WebRTC component then opens a direct connection to the peer's WebRTC component.

Document TURN ping state

Document that turn ping is used, but not the algorithm where all peers are asked for their ping measurements

TURN server interface

What interface should a TURN server present to a browser?

This is needed if we develop our own TURN server

API Doc

Very basic. We can basically specify our message formats.

Check requirements

Sort through the documents and check what we need to do

Keerthi mentioned that Thomas is already doing this, as part of what he requires from our side.

Amend TURN section: Tom's ideas

Our current main point against distributed TURN servers is performance. Tom suggested a procedure where we find the nearest TURN servers to both peers (or between them, etc.)

After figuring out #37, amend the section in the SA document with our findings.

Abgabe Checkliste

  • Update all draw.io drawings (upload, export as PDF using Crop + Selection Only, download)
  • "Remove intermediate files" before building PDF

Für die Publikation der Arbeit auf eprints.hsr.ch: Folder mit:

  • Zustimmung zur Publikation der Arbeit, unterschrieben von den Studierenden. Oder Information, ob einer oder beide der Studierenden die Arbeit, bzw. ihren Namen nicht publiziert haben wollen. Für vertrauliche Arbeiten: Aufgabenstellung aus der ersichtlich wird, dass die Arbeit vertraulich ist.
  • Ein Plain-Text Abstract der Arbeit, welches auf eprints.hsr.ch publiziert wird.
  • Für publizierbare Arbeiten: Ein PDF einer publizierbaren Version der Arbeit, ohne die
    persönlichen Berichte, Sitzungsprotokolle, Vereinbarungen über Urheber- und Nutzungsrechte, Adress-Informationen. Aus Datenschutzgründen ist darauf zu achten, dass keine persönlichen Daten von Industriepartner und Experten (Email-Adressen, Telefonnummern) enthalten sind.
  • Formulare (z.B. Eigenständigkeitserklärung, Nutzungsrechte, ...)

Check SimplePeer

Does it help us?
Does it need a specific server interface for signalling or is that up to you?

Title Page

Create it in Word, make sure the font is the same as in LaTeX. Then simply \includepdf

Check codecs

Are these codecs suitable for a P2P Skype on a laptop?

Note: we've not yet defined if it's just about audio, or video too.

  • OPUS
  • AV1

Write up what we've done so far

  • Start with idea of Java gui and Codecs etc
  • not good, too much effort
  • use webrtc, but most of the things are done for you
  • there's a signaling channel that you have to implement yourself
  • do that

Figure out a way for E2E testing (manual)

How can we start two of our servers so that they run on the same machine? These would simulate two servers.

  • This should scale, it should support more than two servers

Familiarize with TomP2P

Make ourselves familiar with TomP2P

We discussed setting up a DHT between all clients. When a client goes online, it PUTs its current connection details with its ID as the key. When you want to reach this client, you could GET the connection details from the DHT and connect directly.

But, this is all very open for discussion!

Project Plan

Write up a project plan, maybe similar to the one used in EngProj (including risks, organisation, time tracking, methods used (agile, iterative?), ...)

Set up project page

Set up a website, where we could distribute documents. Probably use Github Pages?

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.