diff options
Diffstat (limited to 'network/websocket_client.gd')
| -rw-r--r-- | network/websocket_client.gd | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/network/websocket_client.gd b/network/websocket_client.gd deleted file mode 100644 index d10f518..0000000 --- a/network/websocket_client.gd +++ /dev/null @@ -1,85 +0,0 @@ -extends Node - -var socket_client: WebSocketClient = null -var socket: WebSocketPeer = null -var state: int = 0 # -1 = CONNECTION_FAILED, 0 = CONNECTION_DISCONNECTED, 1 = CONNECTION_CONNECTING, 2 = CONNECTION_CONNECTED, 3 = CONNECTION_DISCONNECTING -var id - -var message_queue : Array = [] # messages to be sent upon connection - -func _ready(): - socket_client = WebSocketClient.new() - socket_client.connect("connection_established", self, "on_connection_success") - socket_client.connect("connection_closed", self, "on_connection_close_success") - socket_client.connect("connection_error", self, "on_connection_error") - #socket_client.connect("data_received", self, "receive") - -func sock_connect_to_url(url): - print("Connecting to %s..." % url) - message_queue.clear() - var error = socket_client.connect_to_url(url) - if error != OK: - return error - - state = 1 # CONNECTING - return OK - -func sock_close(code = 1000, reason = ""): - print("Closing websocket...") - socket_client.disconnect_from_host(code, reason) - state = 3 # DISCONNECTING - -func on_connection_success(protocol): - print("WebSocket connection success with protocol %s." % protocol) - socket = socket_client.get_peer(1) - socket.set_write_mode(WebSocketPeer.WRITE_MODE_TEXT) # defaults to text mode - state = 2 # CONNECTED - - while len(message_queue) > 0: - var msg = message_queue.pop_at(0) - send(msg) - -func on_connection_close_success(clean): - print("WebSocket closed successfully.") - socket = null - if clean: - state = 0 # DISCONNECTED - else: - state = -1 # DISCONNECT DIRTY - -func on_connection_error(): # connection failed - print("WebSocket connection failed!") - socket = null - state = -1 # DISCONNECT DIRTY - -func send(message, as_bytes=false) -> int: - if state != 2: - message_queue.push_back(message) - return -1 - return socket.put_packet(message) - - -func send_json(message) -> int: - if state != 2: - message_queue.push_back(JSON.print(message).to_utf8()) - return -1 - var message_json = JSON.print(message).to_utf8() - return socket.put_packet(message_json) - -func receive(string_to_json=false): - if state != 2: return null - if socket.get_available_packet_count() < 1: return null - var packet : PoolByteArray = socket.get_packet() - if socket.was_string_packet(): - var message = packet.get_string_from_utf8() - if string_to_json: - var json = JSON.parse(message) - if json.error: - return null - message = json.result - return message - return bytes2var(packet) - - -func _process(_delta): - socket_client.poll() |
