Replying to Avatar Meridian

I see that Jam also offer an SDK, as a basic third party library... https://gitlab.com/jam-systems/jam/-/tree/master/ui/packages/jam-core

Something like that may save a lot of heavy lifting, and could significantly reduce the overall development time, in terms of of a re-write, but I take the point that you're inviting in a variable degree of uncertainty & bloat, by leaning on a third party.

It would be very interesting to get input from others on what they perceive as the best path forward, in terms of the technicals.

I wonder if a lightweight WebRTC implemention might be a reasonable starting point? Or am I overlooking newer/more relevant browser based comms libraries/APIs?

WebRTC for the audio portion seems like a great starting point.

Reply to this note

Please Login to reply.

Discussion

I'm not sure how it works in terms of the current implementation, but one of the consequences of building a self-hostable solution based on WebRTC would be that each chat participant would need to maintain a direct connection to all other peers in a chat channel. (Keeping the connectivity peer to peer would help to keep the overall latency low, and allow the primary 'signalling' server to be spun up on very lightweight hardware, ie raspberry pi's, mobile clients, etc.)

To facilitate this, chat participants must be willing to expose their IP address.

Do you think this is acceptable, in terms of the privacy aspect?

The same is true from the perspective of a user who is running a 'signalling server' / self-hosted instance. They must be willing to expose their IP/hostname, and ensure the necessary paths and ports are open, to allow requests into their particular network.

It makes me think about your approach to Zeus/LNBits, in terms of reverse proxying via CloudFlare...

I'm wondering if there is a means to implement something similar, but without necessarily relying on an external third party...

I'm reminded of vhosts, on IRC, back in the day, but I'm not sure it would be possible to use this type of scheme to mask ip/hostnames, without needing to also proxy the data/traffic through the central signalling server, as opposed to keeping connections direct, from one peer to another.

Can we get some more thoughts / opinions ?