SOCKS প্রক্সিতে সংযোগের পর Node.js EPIPE
SOCKS এন্ডপয়েন্টে সংযোগের পর Node-এর EPIPE ব্যাখ্যা করুন এবং প্রয়োজনীয় হ্যান্ডশেক সম্পন্ন হয়েছে কি না যাচাই করুন।
Node সকেটের connect ইভেন্ট জানায় যে TCP প্রক্সিতে পৌঁছেছে। কিন্তু এটি বলে না যে প্রক্সি গন্তব্যের সাথে সংযোগ খুলেছে।
SOCKS5 সার্ভার অ্যাপ্লিকেশন ট্র্যাফিকের আগে মেথড নেগোশিয়েশন, নির্বাচিত প্রমাণীকরণ এবং গন্তব্য অনুরোধ প্রত্যাশা করে। সঙ্গে সঙ্গে HTTP অনুরোধ পাঠালে সার্ভার সংযোগ বন্ধ করতে পারে। পরবর্তী লেখা তখন EPIPE তৈরি করতে পারে।
শুধু EPIPE হ্যান্ডশেক অনুপস্থিতির প্রমাণ নয়। এটি এমন সংযোগে লেখার কথা জানায় যার অপর প্রান্ত আর সেই যোগাযোগ গ্রহণ করছে না। অপর প্রান্ত কেন বন্ধ করেছে তা জানতে আগের ইভেন্ট ও প্রোটোকল উত্তর পড়ুন।
সম্পূর্ণ SOCKS বিনিময় বাস্তবায়ন করে এমন কানেক্টর ব্যবহার করুন। Node-এর মূল HTTPS ক্লায়েন্টের জন্য, SOCKS-সচেতন এজেন্ট গন্তব্যের TLS-এর আগে সেই নেগোশিয়েশন করতে পারে। আপনি নিজে বিনিময়টি বাস্তবায়ন করলে প্রোটোকলের ফিল্ড দৈর্ঘ্য অনুযায়ী ডেটা জমা করুন। একটি data ইভেন্টে একটি সম্পূর্ণ উত্তর থাকবে এমন নিশ্চয়তা নেই, এবং ফেরত দেওয়া bound ঠিকানা একটি হার্ডকোড করা বাইট স্ট্রিংয়ের সাথে মিলতেই হবে না।
অপারেশন ব্যর্থ হওয়ার আগেই ত্রুটি হ্যান্ডলিং নিবন্ধন করুন, ত্রুটি প্রতিবেদনে সংযোগের ধাপ সংরক্ষণ করুন, এবং নেগোশিয়েশন সফল হওয়ার পরেই গন্তব্য প্রোটোকল পাঠান। ত্রুটি ধরা অনিয়ন্ত্রিত ইভেন্ট প্রতিরোধ করে; তবে এটি অবৈধ বিনিময় ঠিক করে না।