Rumah> rangka kerja php> Swoole> teks badan

Cara Swoole menyokong operasi LDAP tak segerak

WBOY
Lepaskan: 2023-06-25 08:43:58
asal
514 orang telah melayarinya

Kini, banyak perusahaan menggunakan LDAP (Lightweight Directory Access Protocol) sebagai sistem pengesahan identiti pengguna, tetapi operasi pertanyaan LDAP boleh menyebabkan kesesakan prestasi dengan mudah. Pada masa ini, anda perlu menggunakan Swoole untuk menyokong operasi LDAP tak segerak untuk meningkatkan prestasi sistem.

Swoole ialah rangka kerja komunikasi rangkaian tak segerak berprestasi tinggi berdasarkan bahasa PHP Ia mempunyai komponen IO tak segerak biasa seperti soket tak segerak, MySQL tak segerak, Redis tak segerak, dsb., dan menyokong DNS tak segerak, klien HTTP tak segerak. Pelayan HTTP dan fungsi lain . Ciri prestasi tinggi dan IO tak segerak Swoole menjadikannya sangat sesuai untuk komunikasi rangkaian dalam senario konkurensi tinggi, seperti perkhidmatan HTTP, perkhidmatan TCP, perkhidmatan WebSocket, dsb.

Mula-mula, kita perlu memasang sambungan Swoole. Ia boleh dipasang melalui arahan berikut:

pecl install swoole
Salin selepas log masuk

Selepas pemasangan selesai, tambah kod berikut dalam PHP untuk mendayakan sambungan Swoole:

extension=swoole.so
Salin selepas log masuk

Seterusnya, kita boleh mencipta klien LDAP tak segerak melalui kod berikut:

$client = new SwooleCoroutineClient(SWOOLE_SOCK_TCP); if (!$client->connect('ldap://localhost', 389)) { echo "connect failed. Error: {$client->errCode} "; exit; } $client->set([ 'open_ldap' => true, 'timeout' => 2, ]); if (!$client->startTls()) { echo "Error: StartTLS failed. Error: {$client->errCode} "; exit; } if (!$client->bind('cn=admin,dc=example,dc=com', 'password')) { echo "Error: Bind failed. Error: {$client->errCode} "; exit; } if (!$client->search('ou=People,dc=example,dc=com', 'uid=guybrush', ['dn', 'cn', 'mail'])) { echo "Error: Search failed. Error: {$client->errCode} "; exit; } while (true) { $entry = $client->getReplies(); if ($entry === false) { echo "Error: Get reply failed. Error: {$client->errCode} "; exit; } if (!$entry) break; foreach ($entry as $item) { echo "dn: " . $item['dn'] . " "; echo "cn: " . $item['cn'] . " "; echo "mail: " . $item['mail'] . " "; } } $client->close();
Salin selepas log masuk

Dalam kod di atas, kami menggunakan klien TCP tak segerak Swoole untuk menyambung ke perkhidmatan LDAP, kemudian gunakan kaedah startTls() untuk mendayakan penyulitan TLS, gunakan kaedah bind() untuk mengikat akaun pentadbir dan kata laluan, dan akhirnya gunakan carian( ) kaedah untuk menanyakan DN yang ditentukan yang sepadan dengan rekod keadaan. Ambil perhatian bahawa kaedah search() mengembalikan objek Generator, dan kita perlu menggunakan kaedah getReplies() untuk mendapatkan hasil pertanyaan.

Perlu diambil perhatian bahawa apabila menggunakan Swoole untuk operasi LDAP tak segerak, sokongan OpenLDAP mesti dihidupkan, jika tidak, TLS tidak akan didayakan atau ralat lain akan berlaku. Kami boleh mendayakan sokongan OpenLDAP apabila menyusun sambungan Swoole:

./configure --enable-openssl --enable-sockets --enable-http2 --enable-coroutine --enable-async-redis --enable-async-mysql --enable-async-httpclient --enable-async-filesystem --enable-open-ldap
Salin selepas log masuk

Selain kaedah yang dinyatakan di atas, Swoole juga menyediakan beberapa kaedah LDAP lain, seperti kaedah add() untuk menambah rekod dan kaedah modify() untuk mengubah suai rekod, dan kaedah delete() digunakan untuk memadam rekod. Penggunaan kaedah ini adalah serupa dengan kaedah carian() Mereka akan mengembalikan objek Generator Anda perlu menggunakan kaedah getReplies() untuk mendapatkan hasil.

Secara keseluruhan, menggunakan Swoole untuk operasi LDAP tak segerak adalah sangat mudah. Melalui ciri IO tak segerak Swoole, kami boleh mengelakkan masalah prestasi yang disebabkan oleh menyekat operasi pertanyaan LDAP dan memperoleh prestasi yang lebih baik.

Atas ialah kandungan terperinci Cara Swoole menyokong operasi LDAP tak segerak. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!