सरल विकास उदाहरण

इंस्टॉलेशन

वर्करमैन को स्थापित करें
एक खाली निदेशिका में चलाएँ
composer require workerman/workerman

उदाहरण 1, HTTP प्रोटोकॉल का उपयोग करके वेब सेवा प्रदान करना

start.php फ़ाइल बनाना

<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
use Workerman\Protocols\Http\Request;
require_once __DIR__ . '/vendor/autoload.php';

// एक Worker बनाएं जो 2345 पोर्ट पर सुन रहा है, http प्रोटोकॉल का उपयोग कर संवाद
$http_worker = new Worker("http://0.0.0.0:2345");

// 4 प्रक्रियाएँ शुरू करें सेवाएँ प्रदान करने के लिए
$http_worker->count = 4;

// जब ब्राउज़र से डेटा प्राप्त होता है, तो ब्राउज़र को hello world वापस लौटाएं
$http_worker->onMessage = function(TcpConnection $connection, Request $request)
{
    // ब्राउज़र को hello world भेजें
    $connection->send('hello world');
};

// वर्कर चलाएँ
Worker::runAll();

कमांड लाइन पर चलाएँ (Windows उपयोगकर्ता cmd कमांड लाइन का उपयोग करें, समान)

php start.php start

परीक्षण

मान लीजिए सर्वर आईपी 127.0.0.1 है

ब्राउज़र में URL http://127.0.0.1:2345 पर जाएं

ध्यान दें:

  1. यदि पहुँच में समस्या आती है, तो कृपया क्लाइंट कनेक्शन विफलता कारण अनुभाग देखें।

  2. सर्वर HTTP प्रोटोकॉल है, केवल HTTP प्रोटोकॉल का उपयोग कर संवाद किया जा सकता है, WebSocket आदि अन्य प्रोटोकॉल का सीधा संवाद नहीं कर सकते।

उदाहरण 2, WebSocket प्रोटोकॉल का उपयोग करके सेवा प्रदान करना

ws_test.php फ़ाइल बनाना

<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';

// ध्यान दें: पिछले उदाहरण से भिन्न, यहां WebSocket प्रोटोकॉल का उपयोग किया जा रहा है
$ws_worker = new Worker("websocket://0.0.0.0:2000");

// 4 प्रक्रियाएँ शुरू करें सेवाएँ प्रदान करने के लिए
$ws_worker->count = 4;

// जब क्लाइंट से डेटा प्राप्त होता है, तो hello $data का उत्तर क्लाइंट को दें
$ws_worker->onMessage = function(TcpConnection $connection, $data)
{
    // क्लाइंट को hello $data भेजें
    $connection->send('hello ' . $data);
};

// वर्कर चलाएँ
Worker::runAll();

कमांड लाइन पर चलाएँ

php ws_test.php start

परीक्षण

Chrome ब्राउज़र खोलें, F12 दबाकर डिबग कंसोल खोलें, Console में टाइप करें (या नीचे दिए गए कोड को HTML पृष्ठ में JS चलाने के लिए डालें)

// मान लीजिए सर्वर आईपी 127.0.0.1 है
ws = new WebSocket("ws://127.0.0.1:2000");
ws.onopen = function() {
    alert("संबंध स्थापित हुआ");
    ws.send('tom');
    alert("सर्वर को एक स्ट्रिंग भेजें: tom");
};
ws.onmessage = function(e) {
    alert("सर्वर से संदेश प्राप्त हुआ: " + e.data);
};

ध्यान दें:

  1. यदि पहुँच में समस्या आती है, तो कृपया हस्तक्षेप समस्या - कनेक्ट करने में विफलता अनुभाग देखें।

  2. सर्वर WebSocket प्रोटोकॉल है, केवल WebSocket प्रोटोकॉल का उपयोग कर संवाद किया जा सकता है, HTTP आदि अन्य प्रोटोकॉल का सीधा संवाद नहीं कर सकते।

उदाहरण 3, सीधे TCP के माध्यम से डेटा स्थानांतरित करना

tcp_test.php बनाना

<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';

// एक Worker बनाएं जो 2347 पोर्ट पर सुन रहा है, बिना किसी एप्लिकेशन लेयर प्रोटोकॉल का उपयोग किए
$tcp_worker = new Worker("tcp://0.0.0.0:2347");

// 4 प्रक्रियाएँ शुरू करें सेवाएँ प्रदान करने के लिए
$tcp_worker->count = 4;

// जब क्लाइंट से डेटा आए
$tcp_worker->onMessage = function(TcpConnection $connection, $data)
{
    // क्लाइंट को hello $data भेजें
    $connection->send('hello ' . $data);
};

// वर्कर चलाएँ
Worker::runAll();

कमांड लाइन पर चलाएँ

php tcp_test.php start

परीक्षण: कमांड लाइन पर चलाएँ
(नीचे दिए गए Linux कमांड लाइन के परिणाम हैं, Windows में परिणाम भिन्न हो सकते हैं)

telnet 127.0.0.1 2347
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
tom
hello tom

ध्यान दें:

  1. यदि पहुँच में समस्या आती है, तो कृपया हस्तक्षेप समस्या - कनेक्ट करने में विफलता अनुभाग देखें।

  2. सर्वर नंगे TCP प्रोटोकॉल है, WebSocket, HTTP आदि अन्य प्रोटोकॉल का सीधा संवाद नहीं कर सकता।