Live data from Hacker News

Building video chat into my personal website using WebRTC, WebSockets, and Go

mattbutterfield.com

61–68 of 68 posts

Re: Building video chat into my personal website using WebRTC, WebSockets, and Go

#61

I feel like part of the reason why software engineering projects are hard to estimate is this. So you want to add video chat.. - this blogpost: 100 loc - pion (open source): 100k loc? - dolby.io/ agora: I'm guessing >1m loc - zoom.... even more?

Blogposts like this don't really help -- someone knocks up a basic WebRTC implementation for a weekend project, reckons it's better than what the specialists do and wants to show it off. That puts the message out that WebRTC is easy, when in reality scaling it to production usage with a full feature set has a hell of a lot of challenges.

It would be better if this sort of thing was heavily caveated ("this is the Hello World of WebRTC") because otherwise a lot of people (non-technical types, junior engineers) see it and think -- well we can do that, should take us a few weeks max.

Re: Building video chat into my personal website using WebRTC, WebSockets, and Go

#62

Earlier quoted context omitted.

I use firefox on iOS, it’s even set as my default browser. Curious what you mean by “safari is the only browser that works in iOS”? For in browser video chat? Genuinely curious, what are the limitations?

Firefox on iOS uses the safari js runtime and the safari layout engine.

Ah I see, thanks I had no idea (I assume most average users are in the same situation). I assume IpadOS is the same, and only MacOS allows a true non safari browser.

Re: Building video chat into my personal website using WebRTC, WebSockets, and Go

#63
post #54

Earlier quoted context omitted.

Essentially we enable in-browser comms (including but not limited to WebRTC for video and audio streams on top of storefronts). Given we allow anonymous connections, we need to associate each WebRTC connection with user defined data (read user profile). It's not quite as simple as "a cookie" because one user can have multiple devices, updated user information has to sync across the other connections and for a smooth…

What do you mean by anonymous connections ? Without them being logged in and you actively tracking them, it is anonymous. You'd be reinventing the wheel to de-anonymize the user if you want to track users across devices, which is certainly not anonymous: existing companies use advertising IDs or cookies, based on the problem. There is no way you can identify users across devices devices (or solve this problem better)…

"I don't think any of these offer cross device identification without having users log in on all their devices."

Exactly, we have...

I wrote a little blog about it: https://yown.it/live-video-call-webrtc

If that doesn't explain it well enough I'll just assume you see being intentionally aggressive!

None of the above solutions enable users to easily manage personalized commerce experiences without paying a developer!!

Re: Building video chat into my personal website using WebRTC, WebSockets, and Go

#64
post #63

Earlier quoted context omitted.

What do you mean by anonymous connections ? Without them being logged in and you actively tracking them, it is anonymous. You'd be reinventing the wheel to de-anonymize the user if you want to track users across devices, which is certainly not anonymous: existing companies use advertising IDs or cookies, based on the problem. There is no way you can identify users across devices devices (or solve this problem better)…

"I don't think any of these offer cross device identification without having users log in on all their devices." Exactly, we have... I wrote a little blog about it: https://yown.it/live-video-call-webrtc If that doesn't explain it well enough I'll just assume you see being intentionally aggressive! None of the above solutions enable users to easily manage personalized commerce experiences without paying a developer!!

Since you advertised yourself as a solution to some problem, I first wanted to find out what the problem was, and then see how you are solving it. I don't know either at the moment (I've read the product hunt too). I did visit the yown.it website, and still didn't understand. Now I have read that blog post, and I still don't understand. That blog post served to explain that you didn't read enough about WebRTC before trying it. You didn't know that WebRTC doesn't specify signalling, but this quite literally a basic concept in WebRTC, have a read of the introduction section. https://www.w3.org/TR/webrtc/#introduction

> Exactly, we have...

I guess it also works when using TOR...

Re: Building video chat into my personal website using WebRTC, WebSockets, and Go

#65
post #26

I tried this myself too and when I try p2p with 4 people, out of 10 tests about 50% of the time I won't be able to see all 4 people or someone wouldn't be able to see all 4 people. It was really hard to make p2p work and debugging the ice connections was even harder.

I thought I was just dumb for not being able to figure this out, but turns out it's just a hard problem for everyone haha

Yeah, it made me feel like I had to read the manual but there wasn't any. Seeing such a bad one reminded me how spoiled we are with beautiful abstractions.

Re: Building video chat into my personal website using WebRTC, WebSockets, and Go

#66

Im doing exactly this, but will use it with a raspberrypi with a 7 inch touch screen as my doorbell. Someone hits the link on the screen, it hits the server, server texts me a link to join the video session and thats it really. I got the core code going (I used a simple tornado [python] implementation as it has web sockets built in) This is the version of the js code that I got going (I couldn't reason about straight…

I really like the video doorbell project, can you make it OSS and put it on a Github repo?

Yes. I will show a show hn post when I get it all running

Re: Building video chat into my personal website using WebRTC, WebSockets, and Go

#68

Earlier quoted context omitted.

Firefox and chrome on iOS are just re-skins of safari. Apple doesn't allow other browser backends

To elaborate on "doesn't allow": iOS binaries that are not signed by apple are not permitted to mark memory pages as executable if they have previously been writable. This restriction makes exploiting buffer overruns very difficult on iOS - particularly important as objective-c doesn't give you much help avoiding them. However, you can't write a runtime compiler unless you can generate bytecode (write) and then execu…

This is the absolute best (and correct) explanation I've ever seen in such a small space. Thank you.
Post reply on HN