Godot web socket client is not receiving anymore updates from Revolt web socket server (https://developers.revolt.chat/stack/bonfire/establishing) after first data is received

first data is an Authentication success message:

{
  "type": "Authenticated"
}

This success message comes when a successful token is received.

Since there are no updates and you cannot send any data after initial connection (data_received never called again, so put_packet() not working apparently), the token will have to be in query parameters:

wss://ws.revolt.chat/?version=1&format=json&token={token}

in order to even receive that success message.

An issue relating to web sockets was opened: https://github.com/godotengine/godot/issues/27560

The user claims that one of the headers causes the connection to cease.

The problem header is Connection: close, Upgrade

    GET / HTTP/1.1
    Pragma: no-cache
    Cache-Control: no-cache
    Host: echo.websocket.org
    Upgrade: websocket
    Connection: close, Upgrade
    Sec-WebSocket-Key: HKWU1xOVV6PP6HXjcIWMDQ==
    Sec-WebSocket-Version: 13

    HTTP/1.1 101 Web Socket Protocol Handshake
    Connection: Upgrade
    Date: Sun, 31 Mar 2019 19:09:01 GMT
    Sec-WebSocket-Accept: 0IHc3riAKJz52YmkLVcWrDHvaYs=
    Server: Kaazing Gateway
    Upgrade: websocket

IMPORTANT!!

What SHOULD happen and what happens on other clients like websocketking, piehost, or this one is receiving a READY update

the big issue:

connect_to_url() is the only thing that sends data or the connection closes or a protocol error

It would be of great help if anyone could give any little piece of knowledge or suggestion on this. code

  • @MarshReaperOP
    link
    39 months ago

    I wouldn’t have gotten here without doing almost all of the previous steps. I even learned a lot about Godot and other libraries.

    To solve this issue, go to PROJECT SETTINGS -> NETWORK -> LIMITS -> Max In Buffer (KB) & Max Out Buffer (KB) to a generous 1024 AND (I think) set Max Buffer (Power of 2) to a whopping 256.