Merge remote-tracking branch 'MaD_CaT/master'
This commit is contained in:
@@ -11,6 +11,9 @@ class Socket extends PacketPeerUDP:
|
||||
|
||||
|
||||
class SocketTCP extends TCPServer:
|
||||
func send_to():
|
||||
pass
|
||||
|
||||
const RX_TIMEOUT: int = 1000 # Время сброса счётчика принятия части пакета
|
||||
var peerstream: = PacketPeerStream.new()
|
||||
var unit_key: Array # Клюс юнита
|
||||
@@ -103,12 +106,13 @@ func poll_receive_tcp(sock: SocketTCP, tick: int) -> bool:
|
||||
if sock.is_connection_available(): # check if someone's trying to connect
|
||||
var client = sock.take_connection() # accept connection
|
||||
sock.peerstream.set_stream_peer(client) # bind peerstream to new client
|
||||
print_debug('client_is_connected')
|
||||
var peer = sock.peerstream.get_stream_peer()
|
||||
if peer:
|
||||
var peer_len_data = peer.get_available_bytes()
|
||||
if peer_len_data > 0:
|
||||
get_client_data(sock, peer_len_data, peer, tick)
|
||||
if sock.unit_key in units and sock.rx_all: units[sock.unit_key].parse(sock.rx_data, tick)
|
||||
if sock.unit_key in units_tcp and sock.rx_all: units_tcp[sock.unit_key].parse(sock.rx_data, tick)
|
||||
return false
|
||||
|
||||
|
||||
@@ -151,5 +155,9 @@ func _process(_delta: float) -> void:
|
||||
match unit.process(tick):
|
||||
Error.OK: sock_unicast.send_to(addr, unit.tx_data)
|
||||
Error.FAILED: emit_signal('socket_error', 'ошибка: %s %s:%d' % [unit, addr[0], addr[1]])
|
||||
for addr in units_tcp:
|
||||
var unit = units_tcp[addr]
|
||||
match unit.process(tick):
|
||||
Error.OK: unit.send_to(addr, unit.tx_data)
|
||||
poll_sockets.any(func(sock): poll_receive(sock, tick))
|
||||
tcp_sockets.any(func(sock): poll_receive_tcp(sock, tick))
|
||||
|
||||
Reference in New Issue
Block a user