```php
void Connection::close(mixed $data = '')
Schließt die Verbindung sicher und löst den onClose-Callback der Verbindung aus.
Obwohl UDP verbindungslos ist, bleibt das entsprechende AsyncUdpConnection-Objekt im Speicher erhalten. Der close-Method muss aufgerufen werden, um das entsprechende UDP-Verbindungsobjekt freizugeben; andernfalls bleibt dieses UDP-Verbindungsobjekt im Speicher und verursacht ein Speicherleck.
Parameter
$data
Optionales Parameter, die zu sendenden Daten (wenn ein Protokoll angegeben ist, wird automatisch die encode-Methode des Protokolls aufgerufen, um die $data-Daten zu verpacken), die Verbindung wird geschlossen, nachdem die Daten gesendet wurden, und anschliessend wird der onClose-Callback ausgelöst.
Die Datengröße darf 65507 Bytes nicht überschreiten, andernfalls schlägt das Senden fehl.
Beispiel
use Workerman\Worker;
use Workerman\Timer;
use Workerman\Connection\AsyncUdpConnection;
use Workerman\Connection\UdpConnection;
require_once __DIR__ . '/vendor/autoload.php';
$worker = new Worker('udp://0.0.0.0:1234');
$worker->onWorkerStart = function(){
// Startet einen UDP-Client 1 Sekunde später, verbindet sich mit Port 1234 und sendet die Zeichenfolge hi
Timer::add(1, function(){
$udp_connection = new AsyncUdpConnection('udp://127.0.0.1:1234');
$udp_connection->onConnect = function(AsyncUdpConnection $udp_connection){
$udp_connection->send('hi');
};
$udp_connection->onMessage = function(AsyncUdpConnection $udp_connection, $data){
// Empfangene Daten vom Server: hello
echo "recv $data\r\n";
// Schließt die Verbindung
$udp_connection->close();
};
$udp_connection->connect();
}, null, false);
};
$worker->onMessage = function(UdpConnection $connection, $data)
{
// Empfangene Daten vom AsyncUdpConnection-Client, sendet die Zeichenfolge hello zurück
$connection->send("hello");
};
Worker::runAll();
Nach der Ausführung wird Ähnliches ausgegeben:
recv hello