workerman ডেভেলপারদের অবশ্যই জানা উচিত কিছু সমস্যা

1、windows পরিবেশের সীমাবদ্ধতা

windows সিস্টেমে workerman একক প্রক্রিয়ার জন্য শুধুমাত্র 200+ সংযোগ সমর্থন করে।
windows সিস্টেমে count প্যারামিটার ব্যবহার করে বহু প্রক্রিয়া সেট করা যাবে না।
windows সিস্টেমে status, stop, reload, restart প্রভৃতি কমান্ড ব্যবহার করা যাবে না।
windows সিস্টেমে ডেমন প্রক্রিয়া চালানো যাবে না, cmd উইন্ডো বন্ধ করে দিলে সেবা বন্ধ হয়ে যাবে।
windows সিস্টেমে এক ফাইলে একাধিক সমীক্ষা শুরু করা যাবে না।
লিনাক্স সিস্টেমে উপরোক্ত সীমাবদ্ধতা নেই, তাই সঠিক পরিবেশে লিনাক্স সিস্টেম ব্যবহার করার পরামর্শ দেওয়া হয়, ডেভেলপমেন্ট পরিবেশে windows সিস্টেম ব্যবহার করা যেতে পারে।

2、workerman অ্যাপাচি অথবা এনজিনক্সের উপর নির্ভর করে না

workerman নিজেই একটি অ্যাপাচি/এনজিনক্সের মতো কন্টেইনার, যতক্ষণ PHP পরিবেশ ঠিক আছে workerman চালানোর জন্য প্রস্তুত।

3、workerman কমান্ড লাইন দ্বারা শুরু হয়

শুরু করার পদ্ধতি অ্যাপাচির মতো কমান্ড ব্যবহার করে শুরু করা (সাধারণত ওয়েব স্পেসে workerman ব্যবহার করা যায় না)। শুরু করার ইন্টারফেস নিচের মতো

4、লম্বা সংযোগে অবশ্যই হার্টবিট যোগ করতে হবে

লম্বা সংযোগে অবশ্যই হার্টবিট যোগ করতে হবে, লম্বা সংযোগে অবশ্যই হার্টবিট যোগ করতে হবে, লম্বা সংযোগে অবশ্যই হার্টবিট যোগ করতে হবে, এটা গুরুত্বপূর্ণ বলে তিনবার বলা হচ্ছে।
লম্বা সংযোগ দীর্ঘ সময় যোগাযোগ না করলে রাউটার নোড এটি পরিষ্কার করে সংযোগ বন্ধ করে দিতে পারে।
workerman হার্টবিট ব্যাখ্যাgatewayWorker হার্টবিট ব্যাখ্যা

5、ক্লায়েন্ট এবং সার্ভারের প্রোটোকল অবশ্যই একে অপরের সাথে মিলে যেতে হবে

এটি ডেভেলপারদের জন্য অত্যন্ত সাধারণ একটি সমস্যা। উদাহরণস্বরূপ যদি ক্লায়েন্ট websocket প্রোটোকল ব্যবহার করে, তাহলে সার্ভারকেও websocket প্রোটোকল ব্যবহার করতে হবে (সার্ভার new Worker('websocket://0.0.0.0...') ) যাতে সংযোগ স্থাপন করা যায় এবং যোগাযোগ হয়।
ব্রাউজারের ঠিকানা বারে websocket প্রোটোকল পোর্টে প্রবেশ করার চেষ্টা করবেন না, কাঁচা tcp প্রোটোকল পোর্টে websocket প্রোটোকল ব্যবহার করে প্রবেশ করার চেষ্টা করবেন না, প্রোটোকল অবশ্যই মিলে যেতে হবে।

এখানে যে তত্ত্বটি আছে তা হল যদি আপনি ইংরেজির সাথে যোগাযোগ করতে চান তবে আপনাকে ইংরেজি ব্যবহার করতে হবে। যদি আপনি জাপানিদের সাথে যোগাযোগ করতে চান তবে আপনাকে জাপানি ভাষা ব্যবহার করতে হবে। এখানে ভাষাটি যোগাযোগ প্রোটোকলের সাথে সমান্তরাল, উভয় পক্ষ (ক্লায়েন্ট এবং সার্ভার) একই ভাষা ব্যবহার করতে হবে যাতে তারা যোগাযোগ করতে পারে, অন্যথায় যোগাযোগ সম্ভব নয়।

6、সংযোগ ব্যর্থতার সম্ভাব্য কারণ

workerman ব্যবহার করতে শুরু করার সময় একটি সাধারণ সমস্যা হল ক্লায়েন্ট সার্ভারের সাথে সংযোগ করতে ব্যর্থ হয়। সাধারণত কারণগুলো নিম্নরূপ:
1、সার্ভারের ফায়ারওয়াল (মেঘ সার্ভার সিকিউরিটি গ্রুপসহ) সংযোগ বাধা দিচ্ছে (৫০% সম্ভাবনা এটি)।
2、ক্লায়েন্ট এবং সার্ভার ব্যবহৃত প্রোটোকল অমিল (৩০% সম্ভাবনা)।
3、ip বা পোর্ট ভুল লেখা হয়েছে (১৫% সম্ভাবনা)।
4、সার্ভার চালু নয়।

7、exit die sleep বিবৃতি ব্যবহার করবেন না

ব্যবসার কার্যক্রমে exit die বিবৃতি ব্যবহার করা হলে প্রক্রিয়া বন্ধ হয়ে যাবে এবং WORKER EXIT UNEXPECTED ত্রুটি প্রদর্শিত হবে। তবে, প্রক্রিয়া বন্ধ হয়ে গেলে এটি অবিলম্বে একটি নতুন প্রক্রিয়া পুনরায় শুরু করতে সাহায্য করবে। যদি ফিরে যেতে হয় তবে return কল করা যায়। sleep বিবৃতি প্রক্রিয়াকে ঘুমাতে বাধ্য করবে, ঘুমের সময় কোনও ব্যবসায় কার্যক্রম চলবে না, ফ্রেমওয়ার্কও চালু থাকবে না, যা সেই প্রক্রিয়াটির সমস্ত ক্লায়েন্টের অনুরোধগুলি প্রক্রিয়া করতে ব্যর্থ করবে।

8、pcntl_fork ফাংশন ব্যবহার করবেন না

pcntl_fork নতুন প্রক্রিয়া তৈরির জন্য ব্যবহৃত হয়, যদি ব্যবসায়ের কোডে pcntl_fork ব্যবহৃত হয় তবে এটি পুনরুদ্ধার করা অসম্ভব একাকী প্রক্রিয়া উৎপন্ন করতে পারে, যা ব্যবসায় বিঘ্ন ঘটাতে পারে। ব্যবসায় pcntl_fork ব্যবহার করা হলে এটি সংযোগ, বার্তা, সংযোগ বন্ধ করা, টাইমার ইত্যাদির পরিচালনাকে প্রভাবিত করবে, যা অপ্রত্যাশিত ব্যর্থতায় ফলস্বরূপ।

9、ব্যবসায়ের কোডে অচল লুপ রাখা উচিত নয়

ব্যবসায়ের কোডে অচল লুপ রাখা উচিত নয়, অন্যথায় এটি control ফেরত workerman ফ্রেমওয়ার্কে দিতে দেবে না, যা অন্যান্য ক্লায়েন্টের বার্তা গ্রহণ এবং প্রক্রিয়া করতে অক্ষম করবে।

10、কোড পরিবর্তনের জন্য রিস্টার্ট করতে হবে

workerman একটি স্থায়ী মেমরির ফ্রেমওয়ার্ক, কোড পরিবর্তনের জন্য workerman পুনরায় চালু করতে হবে যাতে নতুন কোডের প্রভাব দেখা যায়।

11、লম্বা সংযোগের জন্য GatewayWorker ফ্রেমওয়ার্ক ব্যবহার করার পরামর্শ

অনেক ডেভেলপার workerman ব্যবহার করেন দীর্ঘ সংযোগ অ্যাপ্লিকেশন তৈরি করতে, যেমন আইএম, ইন্টারনেট অব থিংস ইত্যাদি। লম্বা সংযোগ অ্যাপ্লিকেশনগুলির জন্য সরাসরি GatewayWorker ফ্রেমওয়ার্ক ব্যবহার করার পরামর্শ দেওয়া হয়, এটি workerman এর ভিত্তিতে বিশেষভাবে পুনরায় মোড়ানো হয়েছে, যা দীর্ঘ সংযোগ অ্যাপ্লিকেশন ব্যাকএন্ডকে সহজ এবং কম জটিল করে তোলে।

12、উচ্চতর সমান্তরাল সমর্থন
যদি ব্যবসায়ের সমান্তরাল সংযোগ সংখ্যা 1000 এর বেশি হয়ে থাকে, তবে দয়া করে লিনাক্স কৃত্রিম কনফিগারেশন অপটিমাইজ করুন এবং ইভেন্ট এক্সটেনশন ইনস্টল করুন