• purahna@lemmygrad.ml
    link
    fedilink
    English
    arrow-up
    3
    ·
    2 years ago

    Can anyone explain why lemmy decided to remove websockets, what they decided to adopt instead of websockets, and to what extent websockets are being removed? I still feel like I don’t understand this move (but I’m sure there’s a good reason)

    • RoundSparrow@lemmy.mlOP
      link
      fedilink
      English
      arrow-up
      4
      ·
      2 years ago

      The primary reason I suspect is that it was buggy code. You would be reading a post and the votes and even the title and body of a post would just change in front of you to the wrong post. The server wasn’t keeping the index of clients correct or something. It was a very uncommon way to build a webapp

      • Ananace@lemmy.ananace.dev
        link
        fedilink
        English
        arrow-up
        4
        ·
        edit-2
        2 years ago

        Websockets really don’t integrate well with the entire rest of the HTTP stack, instead just repurposing the socket as a free-standing two-way communication pipe.

        You can definitely use websockets for requests like regular HTTP, but you have to reimplement things like cookies/session handling, request resumption/retry, duplicated request detection, request timeouts, authentication, etc yourself if you want to use it that way.

        I personally much prefer regular HTTP requests for queries/RPC, and HTTP SSE for notification streams, since those are well developed technologies in the web space - and work much better if there’s a middleware in between.