basic udp client
This commit is contained in:
45
project/scripts/autoload/udp_client.gd
Normal file
45
project/scripts/autoload/udp_client.gd
Normal file
@@ -0,0 +1,45 @@
|
||||
extends Node
|
||||
|
||||
var udp_peer: PacketPeerUDP = PacketPeerUDP.new()
|
||||
var server_ip: String = "45.93.249.177" # Replace with your server's IP
|
||||
var server_port: int = 4477 # Replace with your server's port
|
||||
|
||||
func _ready():
|
||||
var err = udp_peer.bind(server_port, "*")
|
||||
if err != OK:
|
||||
print("Failed to bind to port: ", server_port)
|
||||
return
|
||||
print("Listening on port: ", server_port)
|
||||
# Send a message to the server to initiate session ID assignment
|
||||
var payload: Dictionary = {
|
||||
"type": "init",
|
||||
}
|
||||
send_payload(payload)
|
||||
|
||||
func _process(_delta):
|
||||
if udp_peer.get_available_packet_count() > 0:
|
||||
var packet = udp_peer.get_packet()
|
||||
var message: String = packet.get_string_from_utf8()
|
||||
print("Received: ", message)
|
||||
|
||||
func send_message(message: String) -> void:
|
||||
var payload: Dictionary = {
|
||||
"type": "message",
|
||||
"msg": message
|
||||
}
|
||||
send_payload(payload)
|
||||
|
||||
func send_payload(payload: Dictionary):
|
||||
var packet = JSON.stringify(payload).to_utf8_buffer()
|
||||
udp_peer.set_dest_address(server_ip, server_port)
|
||||
udp_peer.put_packet(packet)
|
||||
|
||||
func move(vec: Vector2i):
|
||||
var payload: Dictionary = {
|
||||
"type": "move",
|
||||
"direction": {
|
||||
"x": vec.x,
|
||||
"y": vec.y
|
||||
}
|
||||
}
|
||||
send_payload(payload)
|
Reference in New Issue
Block a user