Rumah  >  Artikel  >  rangka kerja php  >  Perkongsian pengalaman pembangunan pekerja: membina sistem tolak mesej segera yang stabil dan boleh dipercayai

Perkongsian pengalaman pembangunan pekerja: membina sistem tolak mesej segera yang stabil dan boleh dipercayai

WBOY
WBOYasal
2023-08-05 16:29:061393semak imbas

Perkongsian pengalaman pembangunan pekerja: membina sistem tolak mesej segera yang stabil dan boleh dipercayai

Dengan perkembangan pesat Internet, tolakan mesej masa nyata telah menjadi fungsi yang sangat diperlukan untuk banyak aplikasi dan tapak web. Dalam artikel ini, saya akan berkongsi beberapa pengalaman dan petua tentang menggunakan Workerman untuk membangunkan sistem pemesejan segera yang stabil dan boleh dipercayai. Pada masa yang sama, saya akan memberikan beberapa contoh kod untuk membantu pembaca memahami dan menggunakan teknik ini dengan lebih baik.

Workerman ialah enjin komunikasi rangkaian berprestasi tinggi yang dibangunkan berdasarkan PHP Ia menggunakan teknologi IO tak segerak dan mempunyai ciri kependaman rendah dan konkurensi tinggi. Ini menjadikannya ideal untuk membina sistem pemesejan segera berprestasi tinggi.

Sebelum mula menggunakan Workerman, kami perlu memasang pek sambungan Workerman terlebih dahulu. Kita boleh menggunakan Composer untuk memasang, cuma jalankan arahan berikut dalam direktori projek:

composer require workerman/workerman

Selepas pemasangan selesai, kita boleh mula menulis kod untuk membina sistem push mesej segera kami.

Pertama, kita perlu mencipta skrip sebelah pelayan untuk menerima dan memproses sambungan dan mesej pelanggan. Berikut ialah contoh mudah untuk mencipta fail Server.php:

<?php
require_once __DIR__.'/vendor/autoload.php';

use WorkermanWorker;

$worker = new Worker('websocket://0.0.0.0:8000');

$worker->count = 4;

$worker->onConnect = function($connection) {
    echo "New connection established
";
};

$worker->onMessage = function($connection, $message) {
    echo "Message received from client: $message
";
    $connection->send("Message received: $message");
};

Worker::runAll();

Kod di atas mencipta perkhidmatan WebSocket dan menetapkan alamat pendengaran kepada 0.0.0.0:8000, yang bermaksud mendengar port 8000 mesin tempatan.

Apabila sambungan pelanggan berjaya, acara onConnect akan dicetuskan Kami boleh melakukan beberapa operasi permulaan dalam acara ini. Apabila mesej pelanggan diterima, acara onMessage dicetuskan. Kami boleh memproses mesej dalam acara ini dan mengembalikan respons.

Seterusnya, kita boleh mencipta skrip klien untuk menyambung ke pelayan dan menghantar mesej. Berikut ialah contoh mudah untuk mencipta fail Client.php:

<?php
require_once __DIR__.'/vendor/autoload.php';

use WorkermanWorker;
use WorkermanConnectionAsyncTcpConnection;

$worker = new Worker();

$worker->onWorkerStart = function() {
    $client = new AsyncTcpConnection('ws://127.0.0.1:8000');
    
    $client->onConnect = function($connection) {
        echo "Connected to server
";
        $connection->send("Hello, server!");
    };
    
    $client->onMessage = function($connection, $message) {
        echo "Message received from server: $message
";
    };
    
    $client->onClose = function($connection) {
        echo "Connection closed
";
    };
    
    $client->connect();
};

Worker::runAll();

Kod di atas mencipta Worker klien dan mencipta tika AsyncTcpConnection dalam acara onWorkerStart untuk menyambung ke pelayan. Apabila sambungan berjaya, acara onConnect akan dicetuskan dan kami boleh menghantar mesej kepada pelayan dalam acara ini. Apabila mesej pelayan diterima, acara onMessage dicetuskan dan kami boleh memproses mesej dalam acara ini. Apabila sambungan ditutup, acara onClose dicetuskan.

Pada ketika ini, kami telah menyelesaikan pembangunan sistem tolak mesej segera yang ringkas. Apabila pelanggan menyambung ke pelayan dan menghantar mesej, pelayan menerima mesej dan mengembalikan respons.

Sudah tentu, contoh di atas hanyalah penggunaan asas Workerman, dan aplikasi sebenar mungkin melibatkan lebih banyak fungsi dan logik pemprosesan. Sebagai contoh, kita boleh menggunakan fungsi sembang kumpulan yang disediakan oleh Workerman untuk melaksanakan siaran mesej dan sembang masa nyata antara berbilang pelanggan.

Untuk meringkaskan, menggunakan Workerman untuk membangunkan sistem tolak mesej segera boleh membantu kami membina fungsi komunikasi masa nyata yang stabil dan boleh dipercayai. Selain itu, Workerman menyediakan pelbagai fungsi dan panggilan balik acara untuk memudahkan pembangunan dan pengembangan tersuai kami.

Saya harap perkongsian artikel ini dapat membantu pembaca dan mereka boleh menggunakan Workerman untuk membina sistem push mesej segera berprestasi tinggi dalam projek sebenar.

Atas ialah kandungan terperinci Perkongsian pengalaman pembangunan pekerja: membina sistem tolak mesej segera yang stabil dan boleh dipercayai. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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