কিভাবে ডেটা সম্প্রচার (গ্রুপ সেন্ড) করবেন
উদাহরণ (নিয়মিত সম্প্রচার)
use Workerman\Worker;
use Workerman\Timer;
require_once __DIR__ . '/vendor/autoload.php';
$worker = new Worker('websocket://0.0.0.0:2020');
// এই উদাহরণে প্রক্রিয়ার সংখ্যা অবশ্যই 1 হতে হবে
$worker->count = 1;
// প্রক্রিয়া শুরু হলে একটি নির্ধারিত টামার সেট করুন, নির্দিষ্ট সময়ে সমস্ত ক্লায়েন্টের সাথে ডেটা পাঠান
$worker->onWorkerStart = function($worker)
{
// প্রতি 10 সেকেন্ডে একবার
Timer::add(10, function()use($worker)
{
// বর্তমান প্রক্রিয়ার সমস্ত ক্লায়েন্ট সংযোগের মাধ্যমে, বর্তমান সার্ভারের সময় পাঠান
foreach($worker->connections as $connection)
{
$connection->send(time());
}
});
};
// ওয়ার্কার চালান
Worker::runAll();
উদাহরণ (গ্রুপ চ্যাট)
use Workerman\Worker;
use Workerman\Timer;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
$worker = new Worker('websocket://0.0.0.0:2020');
// এই উদাহরণে প্রক্রিয়ার সংখ্যা অবশ্যই 1 হতে হবে
$worker->count = 1;
// ক্লায়েন্ট থেকে বার্তা আসে, অন্য ব্যবহারকারীদের কাছে সম্প্রচার করুন
$worker->onMessage = function(TcpConnection $connection, $message)use($worker)
{
foreach($worker->connections as $connection)
{
$connection->send($message);
}
};
// ওয়ার্কার চালান
Worker::runAll();
ব্যাখ্যা:
একক প্রক্রিয়া:
উপরের উদাহরণটি শুধুমাত্র একক প্রক্রিয়া ($worker->count=1), কারণ বহুপ্রক্রিয়ায় একাধিক ক্লায়েন্ট আলাদা আলাদা প্রক্রিয়ায় সংযুক্ত হয়েছে, প্রক্রিয়ার মধ্যে ক্লায়েন্ট আলাদা থাকে, সরাসরি যোগাযোগ করতে পারে না; অর্থাৎ A প্রক্রিয়ার মধ্যে B প্রক্রিয়ার ক্লায়েন্ট connection অবজেক্ট সরাসরি ব্যবহার করে ডেটা পাঠানো সম্ভব নয়। (এটি করতে হলে, প্রক্রিয়ার মধ্যে যোগাযোগ প্রয়োজন, যেমন Channel উপাদান ব্যবহার করা যেতে পারে, উদাহরণস্বরূপ উদাহরণ - ক্লাস্টারিং পাঠানো、উদাহরণ - গ্রুপ পাঠানো)।
GatewayWorker ব্যবহারের পরামর্শ
workerman এর উপর ভিত্তি করে তৈরি GatewayWorker ফ্রেমওয়ার্ক আরও সুবিধাজনক পুশ মেকানিজম সরবরাহ করে, যার মধ্যে মাল্টিকাস্ট, সম্প্রচার ইত্যাদি অন্তর্ভুক্ত রয়েছে, এটি একাধিক প্রক্রিয়া বা এমনকি একাধিক সার্ভার ইনস্টলেশন সেট করতে পারে। যদি ক্লায়েন্টকে ডেটা পাঠানোর প্রয়োজন হয়, তবে GatewayWorker ফ্রেমওয়ার্ক ব্যবহারের পরামর্শ দেওয়া হয়।
GatewayWorker ম্যানুয়াল ঠিকানা https://doc2.workerman.net