Fix getting stuck on reconnect if the first attempt fails
also added the hostname to the register request
This commit is contained in:
24
JobServer.gd
24
JobServer.gd
@@ -3,24 +3,32 @@ extends HTTPRequest
|
|||||||
var socket = WebSocketPeer.new()
|
var socket = WebSocketPeer.new()
|
||||||
|
|
||||||
var client_id
|
var client_id
|
||||||
|
var connected = false
|
||||||
func InitWebsocket():
|
func InitWebsocket():
|
||||||
print("Connecting websocket ")
|
print("Connecting websocket ")
|
||||||
socket.max_queued_packets = 32768
|
socket.max_queued_packets = 32768
|
||||||
socket.outbound_buffer_size = 5000000
|
socket.outbound_buffer_size = 5000000
|
||||||
socket.connect_to_url($"/root/Main".websocket_url, TLSOptions.client_unsafe())
|
socket.connect_to_url($"/root/Main".websocket_url, TLSOptions.client_unsafe())
|
||||||
|
var timeout = 5
|
||||||
while socket.get_ready_state() != WebSocketPeer.STATE_OPEN:
|
while socket.get_ready_state() != WebSocketPeer.STATE_OPEN:
|
||||||
socket.poll()
|
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 = {
|
var init_message = {
|
||||||
"register": {
|
"register": {
|
||||||
"version": 1,
|
"version": 1,
|
||||||
"auth_key": $"/root/Main".auth_key
|
"auth_key": $"/root/Main".auth_key,
|
||||||
|
"hostname": $"/root/Main".hostname
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
socket.send_text(str(init_message))
|
socket.send_text(str(init_message))
|
||||||
|
connected = true
|
||||||
print("Connected")
|
print("Connected")
|
||||||
while true:
|
while connected:
|
||||||
await PollWebsocket()
|
await PollWebsocket()
|
||||||
RenderingServer.force_draw()
|
RenderingServer.force_draw()
|
||||||
DisplayServer.process_events()
|
DisplayServer.process_events()
|
||||||
@@ -67,8 +75,11 @@ func PollWebsocket():
|
|||||||
"value": result_value
|
"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))
|
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
|
main.rendering = false
|
||||||
elif state == WebSocketPeer.STATE_CLOSING:
|
elif state == WebSocketPeer.STATE_CLOSING:
|
||||||
socket.poll()
|
socket.poll()
|
||||||
@@ -77,9 +88,10 @@ func PollWebsocket():
|
|||||||
var code = socket.get_close_code()
|
var code = socket.get_close_code()
|
||||||
var reason = socket.get_close_reason()
|
var reason = socket.get_close_reason()
|
||||||
print("WebSocket closed with code: %d, reason %s. Clean: %s" % [code, reason, code != -1])
|
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.
|
set_process(false) # Stop processing.
|
||||||
await get_tree().create_timer(10).timeout
|
connected = false
|
||||||
|
await get_tree().create_timer(5).timeout
|
||||||
InitWebsocket()
|
InitWebsocket()
|
||||||
|
|
||||||
func _process(_delta):
|
func _process(_delta):
|
||||||
|
|||||||
Reference in New Issue
Block a user