Browse Source

Merge pull request #982 from satoshidisciple/fix_bug/webrtc_signaling

Example of "webrtc_signaling" not working on the web
Aaron Franke 1 year ago
parent
commit
4d31672264
1 changed files with 3 additions and 4 deletions
  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():