43 lines
1.3 KiB
GDScript
43 lines
1.3 KiB
GDScript
extends Control
|
|
|
|
var websocket_url = "wss://acecore.lol:4477/ws"
|
|
var websocket_peer = WebSocketPeer.new()
|
|
|
|
var payload: Dictionary = {
|
|
"type": "broadcast",
|
|
"msg": "TESTBUTTON_PRESSED"
|
|
}
|
|
|
|
func _ready():
|
|
var error = websocket_peer.connect_to_url(websocket_url)
|
|
if error == OK:
|
|
print("Connected to WebSocket server")
|
|
send_message("Connected client")
|
|
else:
|
|
print("Failed to connect to WebSocket server")
|
|
|
|
func _process(_delta):
|
|
websocket_peer.poll()
|
|
var state = websocket_peer.get_ready_state()
|
|
if state == WebSocketPeer.STATE_OPEN:
|
|
while websocket_peer.get_available_packet_count():
|
|
print("Packet: ", websocket_peer.get_packet().get_string_from_utf8())
|
|
elif state == WebSocketPeer.STATE_CLOSING:
|
|
# Keep polling to achieve proper close.
|
|
pass
|
|
elif state == WebSocketPeer.STATE_CLOSED:
|
|
var code = websocket_peer.get_close_code()
|
|
var reason = websocket_peer.get_close_reason()
|
|
print("WebSocket closed with code: %d, reason %s. Clean: %s" % [code, reason, code != -1])
|
|
set_process(false)
|
|
|
|
func send_message(message: String) -> void:
|
|
var state = websocket_peer.get_ready_state()
|
|
if state == WebSocketPeer.STATE_OPEN:
|
|
websocket_peer.send(str(payload).to_utf8_buffer())
|
|
else:
|
|
print("WebSocket connection is not open. Current state: ", state)
|
|
|
|
func _on_button_pressed():
|
|
send_message("Test button pressed")
|