যোগাযোগ প্রোটোকলের ভূমিকা
যেহেতু TCP প্রবাহ ভিত্তিক, ক্লায়েন্টের দ্বারা প্রেরিত সংক্ষিপ্ত ডেটা স্রোতের মতো সার্ভারে প্রবাহিত হয়, সার্ভারটি যখন ডেটা আসছে তা শনাক্ত করে, তখন এটি চেক করা প্রয়োজন যে ডেটাটি পূর্ণ কিনা, কারণ এটি সম্ভবত শুধুমাত্র একটি অনুরোধের অংশ ডেটা সার্ভারে পৌঁছেছে, এমনকি সম্ভবত একাধিক অনুরোধ একটি সাথে সংযুক্ত হয়ে সার্ভারে পৌঁছেছে। অনুরোধটি সম্পূর্ণভাবে এসেছিল কিনা অথবা একাধিক সংযুক্ত অনুরোধ থেকে অনুরোধটি পৃথক করার জন্য, একটি যোগাযোগ প্রোটোকল নির্ধারণ করতে হবে।
Workerman-এ কেন প্রোটোকল তৈরি করতে হবে?
পারম্পরিক PHP ডেভেলপমেন্ট সাধারণত ওয়েব ভিত্তিক, মূলত HTTP প্রোটোকল। HTTP প্রোটোকলের বিশ্লেষণ এবং প্রক্রিয়াকরণ সম্পূর্ণরূপে WebServer দ্বারা পরিচালিত হয়, তাই ডেভেলপাররা প্রোটোকল সম্পর্কিত বিষয়ে চিন্তা করে না। তবে যখন আমাদের非HTTP প্রোটোকল ভিত্তিক ডেভেলপমেন্ট করতে হয়, তখন ডেভেলপারদের প্রোটোকল সম্পর্কে ভাবতে হবে।
Workerman ইতিমধ্যে সমর্থিত প্রোটোকল
Workerman বর্তমানে HTTP, websocket, text প্রোটোকল (পার্শ্ব প্রায়োগিক নির্দেশিকা দেখুন), frame প্রোটোকল (পার্শ্ব প্রায়োগিক নির্দেশিকা দেখুন), ws প্রোটোকল (পার্শ্ব প্রায়োগিক নির্দেশিকা দেখুন) সমর্থন করে। এই প্রোটোকলের ভিত্তিতে যোগাযোগ করার সময়, সরাসরি ব্যবহার করা যেতে পারে, ব্যবহারের পদ্ধতি হল: Worker এ প্রোটোকল উল্লেখ করা, যেমন
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
// websocket://0.0.0.0:2345 websocket প্রোটোকল ব্যবহার করে 2345 পোর্ট মনিটর করতে।
$websocket_worker = new Worker('websocket://0.0.0.0:2345');
// text প্রোটোকল
$text_worker = new Worker('text://0.0.0.0:2346');
// frame প্রোটোকল
$frame_worker = new Worker('frame://0.0.0.0:2347');
// tcp Worker, সরাসরি socket যোগাযোগের উপর ভিত্তি করে, কোনো অ্যাপ্লিকেশন স্তরের প্রোটোকল ব্যবহার না করে
$tcp_worker = new Worker('tcp://0.0.0.0:2348');
// udp Worker, কোনো অ্যাপ্লিকেশন স্তরের প্রোটোকল ব্যবহার না করে
$udp_worker = new Worker('udp://0.0.0.0:2349');
// unix domain Worker, কোনো অ্যাপ্লিকেশন স্তরের প্রোটোকল ব্যবহার না করে
$unix_worker = new Worker('unix:///tmp/wm.sock');
কাস্টম যোগাযোগ প্রোটোকল ব্যবহার করা
যখন Workerman-এ থাকা যোগাযোগ প্রোটোকল ডেভেলপমেন্টের প্রয়োজনীয়তা পূরণ করে না, ডেভেলপাররা নিজস্ব যোগাযোগ প্রোটোকল কাস্টমাইজ করতে পারেন, কাস্টমাইজেশন পদ্ধতি পরবর্তী অধ্যায়ে আলোচনা করা হয়েছে।
提示:
Workerman একটি text প্রোটোকল বিল্ট-ইন করেছে, প্রোটোকল ফরম্যাট হল টেক্সট + লাইন ভাঙা চিহ্ন। text প্রোটোকলে ডেভেলপমেন্ট ও ডিবাগিং খুবই সহজ, এটি বেশিরভাগ কাস্টম প্রোটোকলের জন্য ব্যবহার করা যেতে পারে, এবং telnet ডিবাগিং সমর্থন করে। যদি ডেভেলপাররা তাদের নিজস্ব অ্যাপ্লিকেশন প্রোটোকল তৈরি করতে চান, তাহলে তারা সরাসরি text প্রোটোকল ব্যবহার করতে পারেন, আলাদা করে উন্নয়ন করতে হবে না।
text প্রোটোকল নির্দেশিকা দেখার জন্য 《অ্যানেক্স Text প্রোটোকল অংশ》।