|
|
|
@ -24,6 +24,7 @@ func _process(_delta):
|
|
|
|
|
server.poll()
|
|
|
|
|
now = Time.get_ticks_msec()
|
|
|
|
|
|
|
|
|
|
# Accept new connections
|
|
|
|
|
while server.is_connection_available():
|
|
|
|
|
var peer: PacketPeerUDP = server.take_connection()
|
|
|
|
|
var address := "%s:%d" % [peer.get_packet_ip(), peer.get_packet_port()]
|
|
|
|
@ -31,11 +32,13 @@ func _process(_delta):
|
|
|
|
|
if !clients.has(address):
|
|
|
|
|
var connection = Connection.new()
|
|
|
|
|
connection.peer = peer
|
|
|
|
|
connection.address = address
|
|
|
|
|
clients[address] = connection
|
|
|
|
|
peer_connected(address)
|
|
|
|
|
|
|
|
|
|
peer_connected(connection)
|
|
|
|
|
|
|
|
|
|
clients[address].last_packet = now
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Process packets from clients
|
|
|
|
|
for key in clients:
|
|
|
|
|
var client = clients[key]
|
|
|
|
|
var peer = client.peer
|
|
|
|
@ -46,6 +49,7 @@ func _process(_delta):
|
|
|
|
|
client.last_packet = now
|
|
|
|
|
packet_count += 1
|
|
|
|
|
|
|
|
|
|
# Show statistics
|
|
|
|
|
if now > last_statistics + 1000:
|
|
|
|
|
for address in clients.keys():
|
|
|
|
|
var last_packet_time = clients[address].last_packet
|
|
|
|
@ -53,13 +57,13 @@ func _process(_delta):
|
|
|
|
|
if now - last_packet_time > timeout:
|
|
|
|
|
peer_disconnected(address)
|
|
|
|
|
clients.erase(address)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print("[Server] %d clients | %d packets" % [clients.size(), packet_count])
|
|
|
|
|
packet_count = 0
|
|
|
|
|
last_statistics = Time.get_ticks_msec()
|
|
|
|
|
|
|
|
|
|
func peer_connected(_address: String):
|
|
|
|
|
pass
|
|
|
|
|
func peer_connected(c: Connection):
|
|
|
|
|
print("[Server] Connected: ", c.address)
|
|
|
|
|
|
|
|
|
|
func peer_disconnected(address: String):
|
|
|
|
|
print("TIMEOUT ", address)
|
|
|
|
|
func peer_disconnected(c: Connection):
|
|
|
|
|
print("[Server] Disconnected: ", c.address)
|
|
|
|
|