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 প্র proxyy

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>