डेटा प्रसारण (समूह प्रसारण) कैसे करें

उदाहरण (समयबद्ध प्रसारण)

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 के ग्राहक कनेक्शन वस्तु को सीधे डेटा भेजने के लिए सीधा操作 नहीं किया जा सकता है। (यह करने के लिए, आपको प्रक्रियाओं के बीच संचार की आवश्यकता है, जैसे कि Channel घटक का उपयोग करना, उदाहरण के लिए उदाहरण-समूह भेजनाउदाहरण-ग्रुप भेजना)।

GatewayWorker का उपयोग करने की सिफारिश
Workerman के आधार पर विकसित GatewayWorker ढांचा अधिक सुविधाजनक पुश तंत्र प्रदान करता है, जिसमें मल्टीकास्ट, प्रसारण आदि शामिल हैं, आप बहु-प्रक्रिया सेट कर सकते हैं और यहां तक कि कई सर्वरों पर तैनात कर सकते हैं, यदि आपको ग्राहक को डेटा पुश करना है, तो GatewayWorker ढांचे का उपयोग करने की सिफारिश की जाती है।

GatewayWorker मैनुअल पृष्ठ https://doc2.workerman.net