```php
void Connection::close(mixed $data = '')

إغلاق الاتصال بأمان، وتفعيل رد الاتصال onClose الخاص بالاتصال.

على الرغم من أن udp غير متصل، إلا أن كائن AsyncUdpConnection المقابل يبقى في الذاكرة، ويجب استدعاء طريقة close للتحرر من كائن اتصال udp المقابل؛ خلاف ذلك، سيبقى هذا الكائن في الذاكرة مما يؤدي إلى تسرب الذاكرة.

المعلمات

$data

معلمة اختيارية، البيانات المراد إرسالها (إذا كان هناك بروتوكول محدد، فسيتم تلقائيًا استدعاء طريقة encode الخاصة بالبروتوكول لتعبئة بيانات $data)، عند الانتهاء من إرسال البيانات سيتم إغلاق الاتصال، ثم سيتم تفعيل رد الاتصال onClose.

يجب ألا يتجاوز حجم البيانات 65507 بايت، وإلا ستفشل الإرسال.

المثال

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(){
    // بعد 1 ثانية، ابدأ عميل udp، اتصل بالمنفذ 1234 وأرسل سلسلة 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){
            // استلام البيانات المُرجعة من الخادم hello
            echo "recv $data\r\n";
            // إغلاق الاتصال
            $udp_connection->close();
        };
        $udp_connection->connect();
    }, null, false);
};
$worker->onMessage = function(UdpConnection $connection, $data)
{
    // استلام البيانات من عميل AsyncUdpConnection، وإرجاع سلسلة hello
    $connection->send("hello");
};
Worker::runAll();             

بعد التنفيذ، سيتم طباعة ما يشبه:

recv hello