ওয়েব সার্ভার থেকে ব্রাউজারে পুশ ডেটার কোনও উপায় আছে?


134

অবশ্যই আমি অ্যাজাক্স সম্পর্কে সচেতন, তবে আজাক্সের সাথে সমস্যাটি হ'ল নতুন ডেটা আছে কি না তা জানতে ব্রাউজারটি প্রায়শই সার্ভারটি পোল করা উচিত। এটি সার্ভার লোড বৃদ্ধি করে।

সার্ভারে ঘন ঘন পোলিংয়ের চেয়ে আরও ভাল কোনও পদ্ধতি (এমনকি আজাক্স ব্যবহার করা) আছে কি?


1
আমি নিশ্চিত যে সেখানে আছে। অ্যাপ্লিকেশনটির জন্য এটিকে ধারণাটি সহজ করার জন্য আমার ধারণা আপনি পোলিংয়ের অনুরোধগুলির শীর্ষে কোনও পরিবহন স্তর প্রয়োগ করতে পারেন এবং এভাবে আপনার আবেদনের যুক্তি থেকে ভোটের দায়বদ্ধতা সরিয়ে ফেলতে পারেন। ইতিমধ্যে কেউ ইতিমধ্যে এটি বাস্তবায়ন করেছেন? <strong> সম্পাদনা করুন </ strong> দৃশ্যত এটিকে <a href=" en.wikedia.org/wiki/Revers_Ajax"> বিপরীত আজাক্স </a> এবং <a href = " en.wikedia.org/wiki/Comet_ ( প্রোগ্রামিং) "> ধূমকেতু </ a >, তবে এখনও পর্যন্ত দেখে মনে হচ্ছে এটি আপনাকে নিজেরাই প্রয়োগ করতে হবে। এই জন্য একটি জাভাস্ক্রিপ্ট লাইব্রেরি, কেউ?
অ্যান্ডার্স স্যান্ডভিগ

1
@ রাচেল - লাইভ আপডেটগুলি যাতে আপনি দেখতে পাচ্ছেন যে অন্যরা কী করছে। স্ট্যাকওভারফ্লো এর মতো সাইটের জন্য এবং গুগল ডক্সের মতো সহযোগিতার জন্য ওয়েব অ্যাপ্লিকেশনগুলির জন্য ভাল।
ইতাই বার-হাইম

1
২০১ in সালে যে কেউ এই ধরণের কাজ করছেন সম্ভবত এই ধরণের যোগাযোগের জন্য ওয়েবেসকেটকে আরও ভাল পছন্দ বলে মনে করবে।
শ্যাডো

উত্তর:



37

হ্যাঁ, একে বিপরীত আজাক্স বা ধূমকেতু বলা হয় । ধূমকেতু একটি ওয়েব ব্রাউজারে রিয়েল-টাইমে ডেটা ঠেলে দেওয়ার জন্য দীর্ঘকালীন এইচটিটিপি অনুরোধগুলি খোলার বিভিন্ন উপায়ে মূলত একটি ছাতা শব্দ। আমি স্ট্রিমহাব পুশ সার্ভারের পরামর্শ দেব , তাদের কিছু শীতল ডেমো রয়েছে এবং অন্যান্য সার্ভারগুলির চেয়ে কোনও এটি দিয়ে শুরু করা আরও সহজ। দ্রুত পরিচয়ের জন্য ধূমকেতু এবং স্ট্রিমহাব টিউটোরিয়াল দিয়ে শুরু করার চেষ্টা করুন । আপনি সম্প্রদায়ে সংস্করণটি ব্যবহার করতে পারেন যা নিখরচায় ডাউনলোডের জন্য উপলভ্য তবে 20 সহবর্তী ব্যবহারকারীদের মধ্যে সীমাবদ্ধ। একা সমর্থনের জন্য বাণিজ্যিক সংস্করণটি যথেষ্ট মূল্যবান এবং আপনি এসএসএল এবং ডেস্কটপ পান ET নেট এবং জাভা ক্লায়েন্ট অ্যাডাপ্টারগুলি। সহায়তা গুগল গ্রুপের মাধ্যমে উপলব্ধ, নেটে একটি ভাল গুচ্ছ টিউটোরিয়াল আছে এবং একটি GWT ধূমকেত অ্যাডাপ্টারও রয়েছে


1
অবশ্যই যাওয়ার উপায়টি, একবার আপনি এটি বাস্তবায়ন করার পরে নিজেই বুঝতে পারবেন যে আরও কী করতে হবে - পুনরায় সংযোগ, দীর্ঘ ভোটদান, স্ট্রিমিং iframes, ক্রস ব্রাউজার সমর্থন, এইচটিটিপিএস ...
Corehpf

2
ধূমকেতু কী তা এর উত্তরটি এই উত্তরটিকে সহায়তা করবে
কেভিন সন্ন্যাস

1
@ সাতির: একটি দ্রুত ব্যাখ্যা যুক্ত করেছেন। অন্যান্য উত্তরের উইকিপিডিয়া নিবন্ধের লিঙ্ক রয়েছে।
নওস্রামা

32

আজকাল আপনার ওয়েবসকেট ব্যবহার করা উচিত। এটি ২০১১ এর মান যা HTTP এর সাথে সংযোগ শুরু করতে এবং তারপরে তাদের দ্বি-দিকনির্দেশক ক্লায়েন্ট-সার্ভার বার্তা-ভিত্তিক যোগাযোগের ক্ষেত্রে আপগ্রেড করতে দেয়।

আপনি জাভাস্ক্রিপ্ট থেকে সহজেই সংযোগটি শুরু করতে পারেন:

var ws = new WebSocket("ws://your.domain.com/somePathIfYouNeed?args=any");
ws.onmessage = function (evt) 
{
  var message = evt.data;
  //decode message (with JSON or something) and do the needed
};

সেভ-সাইড হ্যান্ডলিং আপনার টেকনোলজি স্ট্যাকের উপর নির্ভর করে।


2
বনাম সার্ভার-প্রেরিত ঘটনা: stackoverflow.com/questions/5195452/...
সিরো Santilli郝海东冠状病六四事件法轮功

8
আমি পুরোপুরি একমত ... দ্বি-দিকনির্দেশক যোগাযোগের জন্য এইচটিটিপি ব্যবহার করা মার্টুকে টার্টেলের শেলগুলিতে ঝাঁপিয়ে দেওয়ার জন্য আরএসটি কল করার কথা ভাবার মতো ... এটি পাগলামি। আপনার কাছে অনুরোধ করার প্রয়োজন নেই এবং সাধারণ বোতামটির জন্য প্রতিক্রিয়াগুলির জন্য অপেক্ষা করুন মানুষকে ধাক্কা দেয় .... আপনি ঠিক করেন না। এইচটিটিপি একটি নথি প্রোটোকল। হাইপার টেক্সট ট্রান্সফার প্রটোকল. ডিজাইন দ্বারা ওয়েবসকেট যা করে তা করার জন্য এইচটিটিপি রোধ করার এজ্যাক্স পুশ একটি অত্যন্ত জটিল উপায়। বোকা হওয়া বন্ধ করুন এবং কাজের জন্য সঠিক সরঞ্জামটি ব্যবহার করুন।
নিক স্টিল

আপনি সত্যিই উপবৃত্তিকে পছন্দ করেন এবং কখনও কখনও চারটি বিন্দুর একটি নতুন রূপ যা আমি "উপবৃত্তাকার" ডাকব!
ইমবটম্যান

10

ধূমকেতুর দিকে নজর দিন (এজ্যাক্স একটি ক্লিনিং এজেন্ট এবং তেমনি ধূমকেতু) এটি মূলত "বিপরীত আজাক্স" is বিজ্ঞপ্তিগুলি গ্রহণের জন্য প্রতিটি ব্যবহারকারীর জন্য এটির দীর্ঘমেয়াদী সার্ভার সংযোগ প্রয়োজন তাই সচেতন হন আপনার অ্যাপটি লেখার সময় পারফরম্যান্সের প্রভাব সম্পর্কে সচেতন হন।

http://en.wikipedia.org/wiki/Comet_(programming)


6

ধূমকেতু অবশ্যই আপনি চান। আপনার ভাষা / কাঠামোর প্রয়োজনীয়তার উপর নির্ভর করে বিভিন্ন সার্ভার লাইব্রেরি উপলব্ধ। উদাহরণস্বরূপ, ওয়েবসিঙ্ক হ'ল এএসপি.এনইটি / সি#/IIS বিকাশকারীদের জন্য একটি আইআইএস-ইন্টিগ্রেটেড ধূমকেতু সার্ভার এবং অন্যান্য ভাষার সাথে আরও কঠোর ইন্টিগ্রেশন প্রয়োজন হলে অন্যান্য স্ট্যান্ড স্টোন সার্ভারের একটি গুচ্ছ রয়েছে।


5

আমি ধূমকেতুতে কিছুটা সময় বিনিয়োগের জন্য দৃ strongly়তার সাথে পরামর্শ দেব, তবে আপনি ব্যবহার করতে পারেন এমন কোনও বাস্তবায়ন বা লাইব্রেরি আমি জানি না।

একটি ওয়েব অ্যাপ্লিকেশনের এক প্রকার "কলসেন্টার কন্ট্রোল প্যানেল" এর জন্য যা লাইভ কলসেন্টারের জন্য আপডেট করার এজেন্ট এবং কল-ক্যু স্থিতির সাথে জড়িত রয়েছে আমরা একটি ইন-হাউস সলিউশন তৈরি করেছি যা কাজ করে তবে আপনি ব্যবহার করতে পারেন এমন লাইব্রেরি থেকে অনেক দূরে।

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

আমাদের ওয়েব-ক্লায়েন্টরা এই ওয়েবসারভারের সাথে এইচটিটিপি-র মাধ্যমে সংযোগ স্থাপন করে এবং শেষের ছবিটি (এক্সএমএল কোডযুক্ত) জিজ্ঞাসা করে, এটি প্রদর্শন করে এবং তারপরে আবার নতুন ফটো জিজ্ঞাসা করে goes এই মুহুর্তে ওয়েবসভারটি করতে পারেন:

  • যদি নতুন ছবি থাকে তবে তা ফিরিয়ে দিন
  • কিছু সেকেন্ডের জন্য ক্লায়েন্টকে অবরুদ্ধ করুন (আমাদের সেটআপে 30) কিছু ইভেন্টের জন্য অপেক্ষা করে ফটোগ্রাফটি পরিবর্তন করুন। যদি সেই সময়ে কোনও ইভেন্ট তৈরি না করা হয়, তবে এটি একই ছবিটি দেয়, কেবলমাত্র সংযোগটি বেঁচে থাকার অনুমতি দেয় এবং ক্লায়েন্টের সময়সীমা ছাড়াই।

এইভাবে, যখন ক্লায়েন্টরা পোল দেয়, এটি সর্বোচ্চ 0 থেকে 30 সেকেন্ডের মধ্যে একটি প্রতিক্রিয়া পায়। যদি কোনও নতুন ইভেন্ট ইতিমধ্যে উত্পন্ন হয় তবে তা তা তাৎক্ষণিকভাবে পাওয়া যায়), অন্যথায় এটি নতুন ইভেন্ট তৈরি না হওয়া পর্যন্ত এটি অবরুদ্ধ করে।

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

কেউ যদি এর সত্যিকারের লাইটওয়েট বাস্তবায়ন সরবরাহ করতে পারে তবে দুর্দান্ত!


5

ধূমকেতুর একটি আকর্ষণীয় বিকল্প হ'ল ফ্ল্যাশে সকেট ব্যবহার করা।


5

আর একটি, স্ট্যান্ডার্ড, উপায় হ'ল এসএসই (সার্ভার-প্রেরিত ইভেন্টস, যা জাভাস্ক্রিপ্ট অবজেক্টের পরে ইভেন্টসোর্স নামেও পরিচিত )।


W3C এর বৈশিষ্ট এর সর্বশেষ সংস্করণ w3.org/TR/2009/WD-eventsource-20091029 রিডাইরেক্ট html.spec.whatwg.org/multipage/comms.html#server-sent-events
সিরো Santilli郝海东冠状病六四事件法轮功


2

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


2

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


2

অবিচ্ছিন্ন HTTP সংযোগ ব্যবহারের মাধ্যমে আপনি কী লক্ষ্য রেখেছেন তা অর্জন করা সম্ভব।

পরীক্ষা করে দেখুন ধূমকেতু নিবন্ধ উইকিপিডিয়ার ধরে, একটি ভাল জায়গা থেকে শুরু যে।

আপনি খুব বেশি তথ্য সরবরাহ করছেন না তবে আপনি যদি কোনও ধরণের ইভেন্ট-চালিত সাইট (আইলা ডিগ ডি গুপ্তচর) বা এর লাইন বরাবর কিছু নির্মাণের দিকে তাকিয়ে থাকেন তবে আপনি সম্ভবত কোনও লুকানো আইফ্রামের সাথে সংযোগ স্থাপনের দিকে তাকিয়ে যাচ্ছেন একটি ইউআরএল যেখানে সংযোগটি কখনই বন্ধ হয় না এবং তারপরে আপডেটগুলি সম্পাদন করার জন্য আপনি সার্ভার থেকে ক্লায়েন্টের কাছে স্ক্রিপ্ট-ট্যাগগুলি ঠেলাবেন।



1

সার্ভারের সাথে কোনও সংযোগ খোলার পরে এটি খোলা রাখা যেতে পারে এবং সার্ভারটি দীর্ঘ সময় পূর্বে ব্যবহারের মাধ্যমে সামগ্রীটি পুশ করতে পারে multipart/x-mixed-replaceতবে এটি IE তে কাজ করেনি।

আমি মনে করি আপনি ভোটদানের সাথে চতুর স্টাফ করতে পারেন যা কন্টেন্ট অপরিবর্তিত শিরোনাম না পাঠিয়ে সংযোগটি উন্মুক্ত রেখে আরও ধাক্কা দেওয়ার মতো কাজ করে যা আমি কখনও এটি করিনি।





আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.