নোড.জেএস সহ কোন ওয়েবসকেট লাইব্রেরি ব্যবহার করবেন? [বন্ধ]


429

বর্তমানে নোড.জেএস এর জন্য ওয়েবসকেট লাইব্রেরিগুলির আধিক্য রয়েছে , সর্বাধিক জনপ্রিয় বলে মনে হচ্ছে:

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

এটি আশ্চর্যজনক হবে যদি আমরা বা কেউ এমন কোনও উত্তর একত্রিত করতে পারি যা সকেট গ্রন্থাগারটি কখন ব্যবহার করতে হবে এবং সেই সাথে তাদের মধ্যে একটি তুলনা করার জন্য গাইড হিসাবে কাজ করে।


246
এটি যদি বন্ধ হয়ে যায় তবে এর মতো প্রশ্ন কোথায় যাওয়া উচিত? যেহেতু উত্তরটি অবিশ্বাস্যভাবে কার্যকর হবে ... দুর্ভাগ্যজনক বলে মনে হচ্ছে যে এই ধরনের একটি বিশিষ্ট প্রশ্ন এখানে থাকা উচিত নয়।
বালুপটন

14
সম্প্রদায় উইকিসের জন্য ওয়াট ওয়াট, এর অর্থ হল যে প্রশ্নটি নতুন উত্তর থেকে বন্ধ হওয়া সত্ত্বেও, আমরা নীচের সম্প্রদায়ের উইকি উত্তরটি এখনও উন্নত করতে পারি :)
বালুপটন

14
আমি সম্মত, আমি এই ধরণের প্রশ্নটি কেবল অনুমোদিত নয়, উত্সাহিত দেখতে চাই। ঠিক আছে, তারা কয়েক বছরের মধ্যে প্রাসঙ্গিক নাও হতে পারে তবে ততক্ষণে তারা বিশ্বকে রক্ষা করবে।
জন লিটল

1
@ বালুপটন আপনি কি আপনার পছন্দ অনুসারে সম্প্রদায়টি আপডেট করতে পারেন এবং যদি আপনি এতে খুশি হন? এটা কি সকেট.ইও?
সি গ্রাফিক্স

3
@ চিত্রগ্রাহক আমি আজকাল ডাব্লুএসের সাথে প্রাইমাস ব্যবহার করি, ডাব্লুএসএস আমার যা দরকার তা হল, যদি আমার আরও চূড়ান্ত কিছু প্রয়োজন হয় তবে আমি কেবল অন্তর্নির্মিত গ্রন্থাগারটি সরিয়ে নিয়েছি এবং প্রিমাসকে একই এপিআই ধন্যবাদ রাখি। বিস্ময়কর কাজ করে।
বালুপটন

উত্তর:


390

এই সম্প্রদায়ের উইকি উত্তর দিয়ে বল ঘূর্ণায়মান । আপনার উন্নতিতে নির্দ্বিধায় আমাকে সম্পাদনা করুন

  • ডাব্লুএস ওয়েবস্কট সার্ভার এবং নোড.জেএস এর ক্লায়েন্ট দ্রুততম গ্রন্থাগারগুলির মধ্যে একটি যদি দ্রুততম না হয়।

  • ওয়েবসকেট নোড ওয়েবসকেট সার্ভার এবং নোড.জেএস এর ক্লায়েন্ট

  • ওয়েবসকেট -ড্রাইভার-নোড ওয়েবসকেট সার্ভার এবং ক্লায়েন্ট প্রোটোকল পার্সার নোড.জেএস - ফাই- ওয়েবসকেট -নোডে ব্যবহৃত

  • ফাই- ওয়েবসকেট -নোড ওয়েবসকেট সার্ভার এবং নোড.জেএস এর ক্লায়েন্ট - ফাই এবং সোকজে ব্যবহৃত

  • সকেট.ইও ওয়েবসকেট সার্ভার এবং ব্রাউজারগুলির জন্য নোড.জেএস + ক্লায়েন্টের ক্লায়েন্ট + (v0 এর মধ্যে সর্বাধিক প্রাচীন ফ্যালব্যাক রয়েছে, সকেট.ইও এর ভি 1 ইঞ্জিন.আইও ব্যবহার করে) + চ্যানেলগুলি - স্ট্যাক.আইওতে ব্যবহৃত হয়। ক্লায়েন্ট লাইব্রেরি সংযোগ বিচ্ছিন্ন হওয়ার পরে পুনরায় সংযোগ করার চেষ্টা করে।

  • সকেজস ওয়েবসকেট সার্ভার এবং নোড.জেএস এবং অন্যদের জন্য ক্লায়েন্ট + ব্রাউজারগুলির জন্য ক্লায়েন্ট + অতি প্রাচীনতম ফলব্যাকগুলিতে

  • ফাই ওয়েবসকেট সার্ভার এবং নোড.জেএস এবং অন্যদের জন্য ক্লায়েন্ট + ব্রাউজারগুলির ক্লায়েন্ট + ফ্যালব্যাকস + অন্যান্য সার্ভার-সাইড ভাষার জন্য সমর্থন

  • ডিপস্ট্রিম.ও ক্লাস্টারেবল রিয়েলটাইম সার্ভার যা ওয়েবসকেটস এবং টিসিপি সংযোগগুলি পরিচালনা করে এবং ডেটা-সিঙ্ক, পাব / সাব এবং অনুরোধ / প্রতিক্রিয়া সরবরাহ করে

  • সকেটক্লাস্টার ওয়েবস্কট সার্ভার ক্লাস্টার যা আপনার মেশিনে সমস্ত সিপিইউ কোর ব্যবহার করে। উদাহরণস্বরূপ, আপনি যদি 32 কোরের সাথে একটি এক্সলারেজ অ্যামাজন ইসি 2 উদাহরণটি ব্যবহার করেন তবে আপনি একক নজরে প্রায় 32 বার ট্র্যাফিক পরিচালনা করতে সক্ষম হবেন।

  • প্রিমাস তাদের সকলের জন্য সহজ স্যুইচিং + স্থায়িত্ব উন্নতির জন্য উপরের বেশিরভাগ লাইব্রেরির জন্য একটি সাধারণ এপিআই সরবরাহ করে।

কখন ব্যবহার করতে হবে:

  • আপনি যখন ক্লায়েন্টাইডে নেটিভ ওয়েবস্কট বাস্তবায়ন ব্যবহার করতে চান তখন বেসিক ওয়েবস্কট সার্ভারগুলি ব্যবহার করুন, ব্রাউজারের অসম্পূর্ণতা থেকে সাবধান থাকুন

  • আপনি ব্রাউজার ফ্যালব্যাকস সম্পর্কে যত্নশীল হলে ফ্যালব্যাক লাইব্রেরি ব্যবহার করুন

  • আপনি যখন চ্যানেলগুলির বিষয়ে চিন্তা করেন তখন পুরো বৈশিষ্ট্যযুক্ত লাইব্রেরি ব্যবহার করুন

  • প্রিমাসটি ব্যবহার করুন যখন আপনার প্রয়োজনীয় ব্যবহারগুলি পরিবর্তন করার কারণে বা অতিরিক্ত সংযোগের স্থায়িত্বের প্রয়োজন হয় তখন আপনার অ্যাপ্লিকেশনটি পুনরায় লেখার মুডে নেই project

কোথায় পরীক্ষা করতে হবে:

ফায়ার ক্যাম্পটি সকেটআইও, ডাব্লুএস এবং সমস্ত বড় রিয়েল-টাইম প্রযুক্তির জন্য একটি জিইউআই পরীক্ষার পরিবেশ। রিয়েল-টাইম ইভেন্টগুলি বিকাশকালে এটি ডিবাগ করুন।


10
বিস্তারিত উত্তর দেওয়ার জন্য ধন্যবাদ। আপনি কখন পয়েন্টটি ব্যবহার করবেন তা ব্যাখ্যা করতে পারেন। পয়েন্টগুলি উল্লেখ করছে এমন চ্যানেলগুলি কী? আমি ওয়েবসকেটে নতুন এবং আমার ক্ষেত্রে কোনটি ব্যবহার করবেন তা বোঝার চেষ্টা করছি।
অক্ষত জিওয়ান শর্মা

2
অটোবাহ / ডাব্লুএমএপি সম্পর্কে কী?
এমিল কর্মিয়ার

1
এখন.js এর মৃত্যুর পরে সমস্ত উপলভ্য বিকল্পের দুর্দান্ত তালিকা
রাহুল প্রসাদ

@আক্ষতজীবন শর্মা: চ্যানেলগুলি হ'ল তথাকথিত 'ঘর' প্রতিটি ঘরের প্রতিটি খেলোয়াড় বার্তা আদান প্রদান করতে পারে ..
মারওয়েন ট্রাবেলসি

4
ডাব্লুএস এর জন্য একটি ছোট বিশদটি হ'ল এটির অজগর দরকার। সুতরাং আপনি যদি ডকারের পাত্রে বা কোনও কিছুর উপরে স্থাপন করেন, আপনার ব্যবহারের জন্য পাইথনটি পাওয়া দরকার ws
আন্তোয়ানকে

40

আপডেট: উল্লিখিত লাইব্রেরির নতুন সংস্করণ তখন থেকে প্রকাশিত হওয়ায় এই উত্তরটি পুরানো।

সকেট.আইও v0.9 পুরানো এবং কিছুটা বাগী এবং ইঞ্জিন.আইও হ'ল অন্তর্বর্তীকালীন উত্তরসূরী। সকেট.আইও ভি 1.0 (যা শিগগিরই প্রকাশিত হবে) ইঞ্জিন.আইও ব্যবহার করবে এবং ভি0.9 এর চেয়ে অনেক ভাল হবে। সকেট.আইও ভি 1.0 প্রকাশ না হওয়া পর্যন্ত আমি আপনাকে ইঞ্জিন.আইও ব্যবহার করার পরামর্শ দিচ্ছি।

"ডাব্লু ডাব্লু" ফ্যালব্যাক সমর্থন করে না, সুতরাং ক্লায়েন্ট ব্রাউজারটি ওয়েবসকেটগুলিকে সমর্থন না করে, এটি সকেট-আইও এবং ইঞ্জিনের বিপরীতে কাজ করবে না which যাইহোক, "ws" এই মুহূর্তে দ্রুততম লাইব্রেরির মতো মনে হচ্ছে।

সকেট.আইও, ইঞ্জিন.আইও এবং প্রাইমাসের তুলনা করে আমার নিবন্ধটি দেখুন: https://medium.com/p/b63bfca0539


এটি আমাকে স্বাভাবিক নোড.জেএস ০.২২ এর স্মরণ করিয়ে দেয় তাৎক্ষণিকভাবে ... তারাও দাবি করে যে এখন কয়েক মাস ধরে। সুতরাং, সম্ভবত, আমাদের অপেক্ষা করতে হবে এবং দেখতে হবে…
গোলো রোডেন

1
অটোবাহন / ডাব্লুএএমপি ( wamp.ws ) এর সাথে আপনার কোনও অন্তর্দৃষ্টি / অভিজ্ঞতা আছে ?
এমিল কর্মিয়ার

6
সকেট.আইও এর ভি 1 প্রকাশ করেছে। ইঞ্জিন.ইও এটির জন্য প্রতিস্থাপন নয়, তবে সকেট।আইও দ্বারা পরিবহন প্রোটোকল হিসাবে অভ্যন্তরীণভাবে ব্যবহৃত হয়েছে - এটি এন্ডপয়েন্টস (এক্সএইচআর, ডাব্লু) এর মধ্যে প্রকৃত যোগাযোগকে বিমূর্ত করে এবং প্যাকেটের জন্য একটি সহজ বিন্যাস রয়েছে। সকেট.ইও একটি আরও সমৃদ্ধ এপি সরবরাহ করে যা তারের উপরে ইভেন্ট ইমিটারের মতো 'অনুভব করে'।
হামেম্যাট

29

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

var WebSocketServer = require("ws").Server;
var http = require("http");
var express = require("express");
var port = process.env.PORT || 5000;

var app = express();
    app.use(express.static(__dirname+ "/../"));
    app.get('/someGetRequest', function(req, res, next) {
       console.log('receiving get request');
    });
    app.post('/somePostRequest', function(req, res, next) {
       console.log('receiving post request');
    });
    app.listen(80); //port 80 need to run as root

    console.log("app listening on %d ", 80);

var server = http.createServer(app);
    server.listen(port);

console.log("http server listening on %d", port);

var userId;
var wss = new WebSocketServer({server: server});
    wss.on("connection", function (ws) {

    console.info("websocket connection open");

    var timestamp = new Date().getTime();
    userId = timestamp;

    ws.send(JSON.stringify({msgType:"onOpenConnection", msg:{connectionId:timestamp}}));


    ws.on("message", function (data, flags) {
        console.log("websocket received a message");
        var clientMsg = data;

        ws.send(JSON.stringify({msg:{connectionId:userId}}));


    });

    ws.on("close", function () {
        console.log("websocket connection close");
    });
});
console.log("websocket server created");

সংযোগ মেটোডে কীভাবে অনুরোধ ইউআরএল পাবেন? wss.on ("সংযোগ", ফাংশন (ডাব্লুএস) {// কিছু কোড কনসোল.লগ (ডাব্লু। ???) url পান ...}
ওপালোসোলো

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

5
প্রকৃতপক্ষে ওয়েবসকেট শেষের পয়েন্টগুলিতেও ইউআরএল রয়েছে ws, যেমন সেগুলি দিয়ে শুরু হয় ws://myserver.com। এবং হ্যাঁ, এগুলি 80 এবং 443 পোর্ট ব্যবহার করে পরিবেশিত হতে কনফিগার করা যেতে পারে। বিঞ্জিন্সের মতো বিপরীত প্রক্সি ব্যবহার করে, আপনি WebSocketপ্রোটোকল ইউআরএলগুলিকে সাধারণ এইচটিটিপি প্রোটোকল থেকে অন্য কোনও বন্দরে রুট করতে পারেন ।
প্রহ্লাদ ইয়েরি

আপনি চাইলে রুটগুলি অনুকরণ করতে পারেন।
লুকাস টেটেমান্তি

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