ব্রাউজার থেকে ওয়েবসকেট পিং / পং ফ্রেম প্রেরণ করা হচ্ছে


130

সংযোগটি বাঁচিয়ে রাখতে আমি ওয়েবসকেটে পিং / পং বার্তাগুলি সম্পর্কে পড়তে থাকি তবে সেগুলি কী তা নিশ্চিত I'm এটি কি স্বতন্ত্র ফ্রেমের ধরণ? (আমি পিং-পং সম্পর্কিত ক্রোমে জাভাস্ক্রিপ্ট ওয়েবস্কট অবজেক্টে কোনও পদ্ধতি দেখতে পাচ্ছি না)। বা এটি কি কেবল একটি ডিজাইনের প্যাটার্ন (যেমন আমি আক্ষরিক অর্থে সার্ভারে "পিং" বা অন্য কোনও স্ট্রিং প্রেরণ করেছি এবং এটির প্রতিক্রিয়া জানাতে চাইছি)। পিং-পং এ কি ধারাবাহিকতা ফ্রেমের সাথে সম্পর্কিত?

আমি জিজ্ঞাসার কারণটি হ'ল আমি একটি অজগর কাঠামো ব্যবহার করছি যা মংগ্রেল 2 এর পিছনে চলেছে, সুতরাং আমি ভাবছি যে মংগ্রেল 2 কে একটি নির্দিষ্ট পিং / পং বার্তা প্রেরণ করার কোনও উপায় আছে যা আমার অজগর অ্যাপটির প্রয়োজন ছাড়াই সংযোগটি বাঁচিয়ে রাখতে বলবে? এটার ব্যাপারে দুশ্চিন্তা কর. এটির জন্য পৃথক এইচটিটিপি পদ্ধতিযুক্ত হিসাবে অভিন্ন, আমার ধারণা। এবং আমি কল্পনা করেছি যে একটি উত্সর্গীকৃত পিং / পং বার্তা ফ্রেমটি "পিং" স্ট্রিংয়ের চেয়ে সহজ (সার্ভার এবং নেটওয়ার্কে কম লোড) হতে পারে, যদিও এটি সম্ভবত খুব বেশি গুরুত্ব পাবে না।

সম্পাদনা: আমি সবেমাত্র আরএফসি 6455 দেখেছি এবং দেখে মনে হচ্ছে পিং এবং পং অবশ্যই তাদের নিজের অপকড সহ ফ্রেম ধরণের নিয়ন্ত্রণ রয়েছে। তাহলে আমি কীভাবে Chrome এর জাভাস্ক্রিপ্ট থেকে একটি পিং ফ্রেম প্রেরণ করব?


সার্ভার থেকে কেবল পিং। অ-মানক পোর্টগুলিতে নেটওয়ার্কিংয়ের সমস্যা সম্পর্কে প্রত্যেকেই জানেন, তাই তারা নিয়মিত সংক্ষিপ্ত বিরতিতে পিং করা শুরু করেন। আমার ধারণা আপনি খারাপভাবে লিখিত সার্ভারটি পিং করতে পারেন তবে তাদের সাথে সংবেদনশীল কিছু করা খুব স্মার্ট নাও হতে পারে।


সার্ভার থেকে @ ব্যবহারকারীর 1382306 পিং প্রথমে মোবাইল ডিভাইসের ব্যাটারি খুব দ্রুত ব্যবহার করবে। ক্লায়েন্ট থেকে পিং ডিভাইসের ব্যাটারি সংরক্ষণ করতে পারে।
ব্রোঞ্জের লোক

@ user1382306 মোটামুটি সবাই না! অ-মানক বন্দরগুলিতে নেটওয়ার্কিংয়ের সমস্যাটি কী?
হ্যাপিডগ

উত্তর:


121

পিং ফ্রেমগুলি প্রেরণ করতে বা পং ফ্রেমগুলি পাওয়ার জন্য কোনও জাভাস্ক্রিপ্ট এপিআই নেই। এটি হয় আপনার ব্রাউজার দ্বারা সমর্থিত, না হয়। ব্রাউজারটি পিং / পং ফ্রেম সমর্থন করে এবং ব্যবহার করছে কিনা তা সক্ষম, কনফিগার করতে বা সনাক্ত করার জন্য কোনও এপিআই নেই। এর জন্য একটি জাভাস্ক্রিপ্ট পিং / পং এপিআই তৈরি করার বিষয়ে আলোচনা হয়েছিল । ভবিষ্যতে পিংস কনফিগার / সনাক্তযোগ্য হতে পারে এমন সম্ভাবনা রয়েছে তবে জাভাস্ক্রিপ্ট সরাসরি পিং / পং ফ্রেম প্রেরণ এবং গ্রহণ করতে সক্ষম হবেন এমন সম্ভাবনা নেই।

তবে, আপনি যদি ক্লায়েন্ট এবং সার্ভার কোড উভয়ই নিয়ন্ত্রণ করেন তবে আপনি উচ্চতর স্তরে সহজেই পিং / পং সমর্থন যুক্ত করতে পারেন। আপনার বার্তায় কোনও ধরণের বার্তা শিরোনাম / মেটাডেটা প্রয়োজন হবে যদি আপনার কাছে এটি ইতিমধ্যে না থাকে তবে এটি বেশ সহজ pretty আপনি যদি প্রতি সেকেন্ডে কয়েকবার পিংস পাঠানোর পরিকল্পনা না করেন বা একসাথে হাজার হাজার ক্লায়েন্ট না পেয়ে থাকেন তবে ওভারহেড নিজেই এটি করার জন্য বেশ ন্যূনতম হতে চলেছে।


1
@ বিগমুগকুপ লিঙ্কটি মারা গেছে
মিঃ জো

19

পিং বলতে কেবল সার্ভার থেকে ক্লায়েন্টে প্রেরণ করা হয় এবং ব্রাউজারটি পং ওপকোডের সাথে স্বয়ংক্রিয়ভাবে উত্তর দেওয়া উচিত। সুতরাং আপনার উচ্চ স্তরের বিষয়ে চিন্তা করার দরকার নেই।

যদিও সমস্ত ব্রাউজারগুলি ধারণা হিসাবে মানকে সমর্থন করে না, তবে এ জাতীয় প্রক্রিয়া বাস্তবায়নে তাদের কিছুটা পার্থক্য থাকতে পারে এবং এর অর্থ এমনকি পং প্রতিক্রিয়া কার্যকারিতা নেই। তবে ব্যক্তিগতভাবে আমি পিং / পং ব্যবহার করছি এবং এমন ক্লায়েন্ট কখনও দেখিনি যা এই ধরণের অপকোড এবং নিম্ন স্তরের ক্লায়েন্টের পাশের প্রয়োগের জন্য স্বয়ংক্রিয় প্রতিক্রিয়া প্রয়োগ করে না।


73
আপনি কোথায় পড়েছেন যে পিংটি কেবল সার্ভার থেকে ক্লায়েন্টে রয়েছে? আরএফসি বলছে "সংযোগ স্থাপনের পরে এবং সংযোগ বন্ধ হওয়ার আগে কোনও শেষ পয়েন্ট মাই কোনও পিং ফ্রেম পাঠায়।"
xryl669

7
যদি আপনি চান যে ক্লায়েন্টটি স্বয়ংক্রিয়ভাবে একটি সংযোগ বিচ্ছিন্ন অবস্থায় সনাক্ত করতে পারে (যখন কোনও আরএসটি / এফআইএন প্যাকেট পাওয়া যায় নি, তবে নেটওয়ার্কটি সংযোগ বিচ্ছিন্ন করা হয়েছে), তবে আপনার ক্লায়েন্টকেও পিং প্যাকেটগুলি শুরু করতে হবে।
pschwamb

13
আরএসটি / এফআইএন প্যাকেটগুলি না পেয়ে টিসিপি সংযোগ বিচ্ছিন্ন করার বিষয়ে অবহিত করে না। কোনও প্রেরক সংযোগ বিচ্ছিন্ন সংযোগে প্রেরণের চেষ্টা করলে টিসিপি কেবল ড্রপ সংযোগগুলি সনাক্ত করে। পিংগুলি অনেক অ্যাপ্লিকেশনগুলিতে হার্টবিট হিসাবে ব্যবহৃত হয় এবং এটি একটি বৈধ ব্যবহার। ক্লায়েন্টটি প্রেরণের চেষ্টা না করা পর্যন্ত একটি মৃত সংযোগ কেবল চিরকাল স্থায়ী থাকবে। সুতরাং, ব্রাউজারে ওয়েবসকেটগুলির সাথে ক্লায়েন্টের পাশে ক্লায়েন্টের সংযোগ বিচ্ছিন্ন করতে একটি কাস্টম পিং (বা হার্টবিট) বার্তাটি ব্যবহার করা আবশ্যক। সার্ভারটি পিন করার চেষ্টা করছে এবং ক্লায়েন্টকে সংযোগ বিচ্ছিন্ন করতে পারে, তবে ক্লায়েন্টকে অবহিত করা হয়নি। ক্লায়েন্টের পিংসও ঠিক আছে।
ডিডিএস

15
আরএফসি 6455, ওয়েবসকেট প্রোটোকল-এ এটি স্পষ্টভাবে বলেছে: "দ্রষ্টব্য: একটি পিং ফ্রেমটি রক্ষণশীল হিসাবে কাজ করতে পারে বা যাচাইয়ের জন্য দূরবর্তী প্রান্তের অবস্থানটি এখনও প্রতিক্রিয়াশীল কিনা তা উপস্থাপন করতে পারে" "
ডিডিএস

4
এটা সম্ভব যে ব্যবহারকারী-এজেন্টদের ঘন ঘন রিফ্রেশ করা হলে সার্ভার-কেবল পিংই একটি প্রস্তাবিত অনুশীলন ছিল। তবে এখন অনেক ওয়েবসাইট এসপিএ হিসাবে নকশা করা হয়েছে। এই পরিবেশে ক্লায়েন্ট অ্যাপ্লিকেশনটির জন্য নিয়মিত সার্ভারটি পিং করা প্রয়োজন যাতে সংযোগটি না হারিয়ে যায় তা নিশ্চিত হতে পারে essential
নোয়েল আবরহামস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.