💾 Archived View for mozz.us › journal › 2020-06-21.gmi captured on 2022-04-29 at 11:29:56. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2020-09-24)

-=-=-=-=-=-=-

Re: A vision for Gemini applications (solderpunk)

Published 2020-06-21

A gemini chatroom

Now, let's put the streaming idea together with the idea of a "slightly social" version of these certificate-secured "for me, by me" apps that I'm so big on. There is no reason that pubnixes couldn't run Gemini-based chatrooms for their users in this manner! Users ssh into the pubnix and run some command to register their certificate fingerprint on the list of authorised fingerprints, which results in that certificate being tied to their pubnix username. They then spawn two of these Gemini microclients I've described which support the text/gemini streaming idea. They point one at an endpoint which streams the contents of the chatroom, one line of text/gemini per post (perhaps with #, ##, ### headings for hourly timestamps or whatever). They point the other client at a different endpoint which just serves an endless chain of status code 10 responses to get input from the user, allowing people to post to the chatroom. Put those two clients in side-by-side or one-above-the-other windows in a tiling window manager and boom, you've got yourself a little members-only chat system. Heck, you could require client certs only for the second endpoint which people can submit content to, and have the first endpoint which streams posts be accessible to anybody, allowing for "public meetings".

Sure, why not?

gemini://chat.mozz.us

Streaming works with my test client, at least.

gemini://mozz.us/jetforce/jetforce_client.py

And it works over my HTTP proxy if you use the "[raw response]" link.

https://portal.mozz.us/gemini/chat.mozz.us/stream?raw=1

Source Code

gemini://mozz.us/jetforce/examples/chatroom.py