connect विधि

void AsyncTcpConnection::connect()

असिंक्रोनस कनेक्शन ऑपरेशन का कार्यान्वयन करें। यह विधि तुरंत वापस लौटेगी।

नोट: यदि आपको असिंक्रोनस कनेक्शन के लिए onError कॉलबैक सेट करने की आवश्यकता है, तो इसे connect के कार्यान्वयन से पहले सेट करना चाहिए, अन्यथा onError कॉलबैक को सक्रिय नहीं किया जा सकता है, जैसे कि नीचे दिए गए उदाहरण में onError कॉलबैक को सक्रिय नहीं किया जा सकता है, और असिंक्रोनस कनेक्शन विफलता की घटना को पकड़ नहीं सकता।

$connection = new AsyncTcpConnection('tcp://baidu.com:81');
// कनेक्शन करते समय onError कॉलबैक सेट नहीं किया गया है
$connection->connect();
$connection->onError = function($connection, $err_code, $err_msg)
{
    echo "$err_code, $err_msg";
};

पैरामीटर

कोई पैरामीटर नहीं

लौटने वाला मान

कोई लौटने वाला मान नहीं

उदाहरण Mysql प्रॉक्सी

use Workerman\Worker;
use Workerman\Connection\AsyncTcpConnection;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';

// वास्तविक mysql पता, मान लें कि यह स्थानीय मशीन का 3306 पोर्ट है
$REAL_MYSQL_ADDRESS = 'tcp://127.0.0.1:3306';

// प्रॉक्सी स्थानीय 4406 पोर्ट पर सुन रहा है
$proxy = new Worker('tcp://0.0.0.0:4406');

$proxy->onConnect = function(TcpConnection $connection)
{
    global $REAL_MYSQL_ADDRESS;
    // वास्तव में mysql सर्वर के लिए असिंक्रोनस कनेक्शन स्थापित करें
    $connection_to_mysql = new AsyncTcpConnection($REAL_MYSQL_ADDRESS);
    // mysql कनेक्शन से डेटा आते समय, संबंधित क्लाइंट के कनेक्शन पर फ़ॉरवर्ड करें
    $connection_to_mysql->onMessage = function(AsyncTcpConnection $connection_to_mysql, $buffer)use($connection)
    {
        $connection->send($buffer);
    };
    // mysql कनेक्शन बंद होने पर, संबंधित क्लाइंट के कनेक्शन को बंद करें
    $connection_to_mysql->onClose = function(AsyncTcpConnection $connection_to_mysql)use($connection)
    {
        $connection->close();
    };
    // mysql कनेक्शन में गलती होने पर, संबंधित क्लाइंट के कनेक्शन को बंद करें
    $connection_to_mysql->onError = function(AsyncTcpConnection $connection_to_mysql)use($connection)
    {
        $connection->close();
    };
    // असिंक्रोनस कनेक्शन का कार्यान्वयन करें
    $connection_to_mysql->connect();

    // क्लाइंट से डेटा आते समय, संबंधित mysql कनेक्शन पर फ़ॉरवर्ड करें
    $connection->onMessage = function(TcpConnection $connection, $buffer)use($connection_to_mysql)
    {
        $connection_to_mysql->send($buffer);
    };
    // क्लाइंट का कनेक्शन टूटने पर, संबंधित mysql कनेक्शन को तोड़ें
    $connection->onClose = function(TcpConnection $connection)use($connection_to_mysql)
    {
        $connection_to_mysql->close();
    };
    // क्लाइंट के कनेक्शन में गलती होने पर, संबंधित mysql कनेक्शन को तोड़ें
    $connection->onError = function(TcpConnection $connection)use($connection_to_mysql)
    {
        $connection_to_mysql->close();
    };

};
// कार्यकर्ता चलाएं
Worker::runAll();

परीक्षण

mysql -uroot -P4406 -h127.0.0.1 -p

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 25004
Server version: 5.5.31-1~dotdeb.0 (Debian)

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>