Bläddra i källkod

make websocket pool every time

Satoshi Disciple 1 år sedan
förälder
incheckning
db8ac0422d
1 ändrade filer med 3 tillägg och 4 borttagningar
  1. 3 4
      networking/webrtc_signaling/client/ws_webrtc_client.gd

+ 3 - 4
networking/webrtc_signaling/client/ws_webrtc_client.gd

@@ -9,6 +9,7 @@ enum Message {JOIN, ID, PEER_CONNECT, PEER_DISCONNECT, OFFER, ANSWER, CANDIDATE,
 var ws: WebSocketPeer = WebSocketPeer.new()
 var code = 1000
 var reason = "Unknown"
+var old_state = WebSocketPeer.STATE_CLOSED
 
 signal lobby_joined(lobby)
 signal connected(id, use_mesh)
@@ -33,9 +34,6 @@ func close():
 
 
 func _process(delta):
-	var old_state: int = ws.get_ready_state()
-	if old_state == WebSocketPeer.STATE_CLOSED:
-		return
 	ws.poll()
 	var state = ws.get_ready_state()
 	if state != old_state and state == WebSocketPeer.STATE_OPEN and autojoin:
@@ -43,10 +41,11 @@ func _process(delta):
 	while state == WebSocketPeer.STATE_OPEN and ws.get_available_packet_count():
 		if not _parse_msg():
 			print("Error parsing message from server.")
-	if state == WebSocketPeer.STATE_CLOSED:
+	if state != old_state and state == WebSocketPeer.STATE_CLOSED:
 		code = ws.get_close_code()
 		reason = ws.get_close_reason()
 		disconnected.emit()
+	old_state = state
 
 
 func _parse_msg():