extends Node @export var websocket_url = "ws://localhost:8080/ws" var socket = WebSocketPeer.new() var messageBuffer = [] func _ready() -> void: set_process(false) pass func _process(_delta: float) -> void: socket.poll() if socket.get_ready_state() != socket.STATE_OPEN: print("Socket closed?") set_process(false) return while socket.get_available_packet_count(): messageBuffer.append(socket.get_packet().get_string_from_utf8()) func message_pending() -> bool: return !messageBuffer.is_empty() func get_message() -> String: if messageBuffer.is_empty(): return "" var mess = messageBuffer.pop_front() return String(mess) func connectSocket() -> void: socket.poll() if socket.get_ready_state() == socket.STATE_OPEN: print("socket already connected") return var err = socket.connect_to_url(websocket_url) if err != OK: print("Unable to Connect") set_process(false) else: while (socket.get_ready_state() != socket.STATE_OPEN): socket.poll() set_process(true) func writeSocket(text: String) -> void: if socket.get_ready_state() != socket.STATE_OPEN: print("Socket closed?") set_process(false) return var err = socket.send_text(text) if err != OK: print("Error sending message: ", err) set_process(false) func disconnectSocket() -> void: socket.close() func _exit_tree() -> void: disconnectSocket()