summaryrefslogtreecommitdiff
path: root/network/websocket_client.gd
diff options
context:
space:
mode:
Diffstat (limited to 'network/websocket_client.gd')
-rw-r--r--network/websocket_client.gd85
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()