💾 Archived View for bbs.geminispace.org â€ē u â€ē dimkr â€ē 12344 captured on 2024-06-16 at 18:25:22. Gemini links have been rewritten to link to archived content

View Raw

More Information

âŦ…ī¸ Previous capture (2024-05-26)

➡ī¸ Next capture (2024-07-09)

🚧 View Differences

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

Comment by 😈 dimkr

Re: "I saw a comment by @clseibold earlier (hope I spelled that..."

In: u/Addison

@Addison you can't distinguish between a troll server that sends the document x bytes at a time to annoy you, and a server that "streams" the response in chunks but sometimes network latency is higher or reliability is lower. And this is also true for streaming of audio and video, not just gemtext. The only "solution" is having socket timeouts (for sending and receiving) so the transfer fails if nothing is received (or acknowledged) for some time, but also per-session timeout (so download fails after a while if the server keeps sending more data but the file is really big or endless).

😈 dimkr

2023-12-05 ¡ 6 months ago

4 Later Comments ↓

😈 dimkr · 2023-12-05 at 17:43:

@clseibold Maybe TCP keepalives, but a client may close a session after some deadline regardless of last I/O time, or terminate sessions based on time since last I/O (last packet carrying more data to display) instead of time since the last packet (including keepalive packets). Gemini is not really designed for streaming, it can be done but you need to make assumptions about the client and that means a capsule marked 'works best with x', like old sites built with IE in mind.

😈 dimkr · 2023-12-06 at 07:53:

@clseibold I see things differently, I think that supporting a MIME type is one thing, but assumptions about client behavior is another. For example, some capsules have links that align nicely in Lagrange, and Station expects a client certificate for / although it's /join that returns 60 (Lagrange defaults to certificates for /, so it "just works"). In gplaces, I had to mimic Lagrange in some corner cases - for example, only warn, not show an error, if a capsule doesn't send close_notify like the spec says. I don't like capsules that work better with a specific client, or only with a specific client.

🕹ī¸ skyjake [...] ¡ 2023-12-06 at 19:38:

Yes you are correct about the history @clseibold.

This reminds me I should use the "/?register" solution myself in Bubble, because having an actual "Create Account" UI action beats the current "just activate a certificate but please only at the root".

😈 dimkr · 2023-12-07 at 07:23:

@clseibold @skyjake This history shows how much "wiggle room" the spec has, allowing clients to behave very differently from each other, until clients and servers achieve some status quo not mandated by the spec. I know that my client (and probably many others) doesn't support "chat" because it previews the document during download but shows the prompt that allows you to navigate to a link only when transfer is finished.

Original Post

🐝 Addison

I saw a comment by @clseibold earlier (hope I spelled that right) talking about streaming audio capabilities in mobile Gemini clients. I can't seem to find the post anymore, but it got me thinking about whether Opal (the client library that Rosy Crow uses to do it's Gemini stuff) can support that. [https link] Currently it does not support that, because the entire response is read all at once into a buffer. Thinking about this a while, I of course arrived at the classic conclusion that...

đŸ’Ŧ 24 comments ¡ 2 likes ¡ 2023-12-04 ¡ 6 months ago