diff --git a/JobServer.gd b/JobServer.gd index 2b412ab..2eada1f 100644 --- a/JobServer.gd +++ b/JobServer.gd @@ -3,24 +3,32 @@ 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 + "auth_key": $"/root/Main".auth_key, + "hostname": $"/root/Main".hostname } } socket.send_text(str(init_message)) + connected = true print("Connected") - while true: + while connected: await PollWebsocket() RenderingServer.force_draw() DisplayServer.process_events() @@ -67,8 +75,11 @@ func PollWebsocket(): "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)) - print("Sent result ", result_path) + 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() @@ -77,9 +88,10 @@ func PollWebsocket(): 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 10") + print("Attempting reconnect in 5") set_process(false) # Stop processing. - await get_tree().create_timer(10).timeout + connected = false + await get_tree().create_timer(5).timeout InitWebsocket() func _process(_delta):