5 ms·
Question concerning a potential impl I'm pondering: Are there any realtime/streaming approaches with ActivityPub? Can a chat application be reasonably implement
by kodablah 7y ago
Question concerning a potential impl I'm pondering: Are there any realtime/streaming approaches with ActivityPub? Can a chat application be reasonably implemented on it today or is the inbox/outbox federation concept too limiting? Are there any examples of such services out there and how reusable/generic are their approaches?
- nightpool 7y agoPleroma worked on a real time chat implementation for a while, but iirc they went back and forth on whether to use ActivityPub for it and never ended up building anything. IMO, it would require a few extensions on the client to server side, but the server to server side is already flexible enough for you to build a pretty good chat. as far as streaming more generally, mastodon has had real time streaming for all of its main views since day 1, so it's definitely doable. using mastodon actually feels more real-time, in my experience, then using Twitter—its more directly comparable to seeing new posts and notifications come in on Tweetdeck. The latency between two different mastodon servers is generally a second or two, which is plenty good for microblogging. Obviously more steaming focused impls could do much better.
- vertex-four 7y agoIn the next version of my ActivityPub system which integrates chat, I'm using XMPP, with a reference to the user's XMPP JID from the user's ActivityPub actor. The upside is that everyone can use standard XMPP clients like Dino or Gajim to chat. As I'm doing video streaming over HLS, they can also use VLC or similar to watch videos - the rest of it is then just standard ActivityPub. The web application is built on Converse.JS and Video.JS.
- BlueTemplar 7y agoHmm, doesn't HLS have built-in DRM ?
- vertex-four 7y agoNope. HLS is an open standard without DRM - it's basically just an extended playlist of MPEG Transport Stream files, which the client repeatedly requests to find the next part of the stream. These can be generated with e.g. gstreamer; at the moment I'm using nginx-rtmp-module to generate them but intend to replace that with a more flexible/tailored option. It can be used to transport streams with DRM, though, but there's nothing special about that - it'll transport anything that goes in a MPEG Transport Stream.
- lainsoykaf 7y agoPleroma has built in support for connection to an xmpp server, to share account data. We are also working on a proper ActivityPub chat, but this was put on ice for a while because it require Group support for many cases, and that's another complicated topic in a federated world. Overall, the speed of federation is very good, but we will be releasing a new federation transport over websockets in the next few weeks which should make it realtime in nearly all situations.