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
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
.