the technology behind the immmr webapp and open immmr

HTML
CSS
JavaScript

Simple!

Right?

HTML: HyperText Markup Language

<!DOCTYPE html>
<html>
<head>
    <title>Hello World</title>
</head>
<body>
    <h1>Hello World!</h1>
</body>
</html>

CSS: Cascading Style Sheets

h1 {
    font-size: 30px;
    color: black;
}
h2 {
    font-size: 24px;
    color: magenta;
    transform: rotate(5deg);
}

JavaScript

let kids = [
    {
        name: 'Antonina',
        likes: ['Apple', 'Spinach']
    },
    {
        name: 'Ella',
        likes: ['Apple', 'Banana']
    }
];
let likey = function (name, food) {
    return kids
        .find((k) => k.name === name)
        .likes.includes(food);
};
likey('Antonina', 'Banana'); // false

Client side business, first time login

Hi immmr.com, wazzup?

Hi Browser, here's the HTML, CSS and JS you need

Here's my login data

app.immmr.com

Cool, talk to kandy & couch with these credentials now

Hi couch, please give me a complete copy of you

Sure, here's contacts and messages and stuff

Hi civey.com, wazzup?

Hi Browser, here's the HTML, CSS and JS you need

civey.com

Client side business, coming back

Hi immmr.com, wazzup?

Hey browser, I'm Service Worker, i already have what you need and i'm running locally :)

app.immmr.com

Hey browser, no need to ask couch again, i already stored contacts and messages and stuff locally

zzzzzz...*snore*

zzzzzz...*snore*

NOT

SO
FAST

Exposing browser / device capabilities to JavaScript 

Browser asks user for permission to use these!

Web Sockets

Web Sockets

Bi-directional realtime client-server communication to send data

b@immmr

a@immmr

mysterious cloud

Hi server, i'm back

Cool a@immmr, here's some new messages

Hey, heres a message for b@immmr

Hey, a@immmr has this message for you

Cool, thanks

Hey a@immmr, b@immmr has received the msg

another mysterious cloud

Can I Use Web Sockets?

getUserMedia

Can I Use getUserMedia?

WebRTC

Web real-time communication between Browsers (humans might be involved)

b@immmr

a@immmr

Hey Server, i want to talk to b@immmr

Cool, let's do this

Hey you two, here's how you connect directly

Hey, a@immmr would like to talk, ok?

Hey you two, here's how you connect directly

WebSocket

WebRTC

getUserMedia

getUserMedia

stream

stream

RTC MediaStreamTrack

RTC MediaStreamTrack

Can I Use WebRTC?

Thanks, that's really all for now

immmr webapp technology

By bastianalbers

immmr webapp technology

  • 210