Cleanup file and folder structure

This commit is contained in:
2023-08-07 10:38:53 +02:00
parent 879e494840
commit 0e71f372c3
11 changed files with 20 additions and 25 deletions

100
scripts/JobServer.gd Normal file
View File

@@ -0,0 +1,100 @@
extends HTTPRequest
var socket = WebSocketPeer.new()
var client_id
var connected = false
func InitWebsocket():
print("Connecting websocket ")
socket.max_queued_packets = 32768
socket.outbound_buffer_size = 5000000
socket.connect_to_url($"/root/Main".websocket_url, TLSOptions.client_unsafe())
var timeout = 5
while socket.get_ready_state() != WebSocketPeer.STATE_OPEN:
socket.poll()
await get_tree().create_timer(.25).timeout
timeout -= 0.25
if timeout <= 0:
timeout = 5
socket.connect_to_url($"/root/Main".websocket_url, TLSOptions.client_unsafe())
var init_message = {
"register": {
"version": 1,
"auth_key": $"/root/Main".auth_key,
"hostname": $"/root/Main".hostname
}
}
socket.send_text(str(init_message))
connected = true
print("Connected")
while connected:
await PollWebsocket()
RenderingServer.force_draw()
DisplayServer.process_events()
await get_tree().create_timer(0.1).timeout
func PollWebsocket():
var main = $"/root/Main"
socket.poll()
var state = socket.get_ready_state()
if state == WebSocketPeer.STATE_OPEN:
while socket.get_available_packet_count():
var packet = socket.get_packet()
var json = JSON.parse_string(packet.get_string_from_utf8())
print("Packet: ", packet.slice(0,5), "...")
if "welcome" in json:
print("Registered as client %s" % json["welcome"]["clientId"])
client_id = json["welcome"]["clientId"]
if "job" in json:
var job = json["job"]
print("Recevied Job ", job["jobId"])
main.rendering = true
var result_path = await $"../Renderer".RenderJob(job)
var result_value = ""
var result_type = "URL" if $"/root/Main".serve_mode == "local" else "B64:PNG"
if $"/root/Main".serve_mode == "local":
result_value = result_path
if $"/root/Main".serve_mode == "remote":
print("trying to open " + result_path)
var resut_file = FileAccess.open(result_path,FileAccess.READ)
result_value = "{path}:{data}".format({
"path": result_path.get_file(),
"data": Marshalls.raw_to_base64(resut_file.get_buffer(resut_file.get_length()))
})
var debugFile = FileAccess.open("user://debug.log", FileAccess.WRITE)
debugFile.store_string(result_value)
debugFile.flush()
debugFile.close()
var response = {
"result": {
"type": result_type,
"jobId": job["jobId"],
"value": result_value
}
}
print("[%s] Sending result via wss..." % str(response).length())
var time_start = Time.get_unix_time_from_system()
socket.send_text(str(response))
var time_elapsed = Time.get_unix_time_from_system() - time_start
print("Sent result in %s \n" % time_elapsed, result_path)
main.rendering = false
elif state == WebSocketPeer.STATE_CLOSING:
socket.poll()
elif state == WebSocketPeer.STATE_CLOSED:
print(socket.get_packet())
var code = socket.get_close_code()
var reason = socket.get_close_reason()
print("WebSocket closed with code: %d, reason %s. Clean: %s" % [code, reason, code != -1])
print("Attempting reconnect in 5")
set_process(false) # Stop processing.
connected = false
await get_tree().create_timer(5).timeout
InitWebsocket()
func _process(_delta):
pass