Send the play queue ID to the server
Build / test (push) Successful in 45s
Build / build (push) Successful in 1m12s

The server keeps a play queue per client, identified by the X-Queue-Id
header. The client sends the ID it has for the selected server with every
request and keeps the one in each response, which is new after a reset or a
sync. The IDs are saved per server in the [queues] section of settings.cfg,
so the game goes on with the same queue after a restart.

HttpTransport now passes the response headers on to the client.
This commit is contained in:
Sansan committed 2026-10-07 21:23:37 +02:00
1 parent d21b3e2ce0
commit 4a45e8516d
8 files changed
+212 -16

No files matched your search

+9 -6
View File
@@ -16,8 +16,9 @@ func _init(owner: Node) -> void:
## Requests [param url] and calls [param on_complete] with
## [code](response_code: int, body: PackedByteArray)[/code]. Connection errors and
## timeouts are reported with response code 0. [param headers] are sent as-is; a
## [code](response_code: int, body: PackedByteArray, headers: PackedStringArray)[/code],
## the headers as [code]"Name: value"[/code] lines. Connection errors and timeouts are
## reported with response code 0 and no headers. [param headers] are sent as-is; a
## [param body] is sent as JSON.
func request(
url: String,
@@ -33,12 +34,14 @@ func request(
func(
result: int,
response_code: int,
_headers: PackedStringArray,
response_headers: PackedStringArray,
response_body: PackedByteArray,
) -> void:
http_request.queue_free()
on_complete.call(response_code if result == HTTPRequest.RESULT_SUCCESS else 0,
response_body)
if result != HTTPRequest.RESULT_SUCCESS:
on_complete.call(0, response_body, PackedStringArray())
return
on_complete.call(response_code, response_body, response_headers)
)
var all_headers: PackedStringArray = headers.duplicate()
if method == HTTPClient.METHOD_PUT || !body.is_empty():
@@ -47,4 +50,4 @@ func request(
if error != OK:
http_request.queue_free()
push_error("Could not send request to %s (error %d)" % [url, error])
on_complete.call(0, PackedByteArray())
on_complete.call(0, PackedByteArray(), PackedStringArray())