আমি কীভাবে নোড.জেজেস ECONNRESET ত্রুটি ডিবাগ করব?


288

আমি চ্যাট ওয়েব অ্যাপের জন্য সকেট.ইও ব্যবহার করে একটি এক্সপ্রেস.জেএস অ্যাপ্লিকেশন চালিয়ে যাচ্ছি এবং 24 ঘন্টা সময়কালে আমি প্রায় 5 বার এলোমেলোভাবে নিম্নলিখিত ত্রুটিটি পেয়েছি। নোড প্রক্রিয়াটি চিরকালের জন্য আবৃত থাকে এবং এটি অবিলম্বে নিজেকে পুনরায় আরম্ভ করে।

সমস্যাটি হ'ল এক্সপ্রেস পুনরায় চালু করা আমার ব্যবহারকারীদের তাদের ঘরগুলি থেকে সরিয়ে দেয় এবং কেউ তা চায় না।

ওয়েব সার্ভারটি HAProxy দ্বারা প্রক্সি করা হয়েছে। সকেট স্থিতিশীলতার কোনও সমস্যা নেই, কেবল ওয়েবসকেট এবং ফ্ল্যাশসকেট পরিবহন ব্যবহার করে। আমি উদ্দেশ্য করে এটি পুনরুত্পাদন করতে পারি না।

নোডের সাথে এটি ত্রুটি v0.10.11:

    events.js:72
            throw er; // Unhandled 'error' event
                  ^
    Error: read ECONNRESET     //alternatively it s a 'write'
        at errnoException (net.js:900:11)
        at TCP.onread (net.js:555:19)
    error: Forever detected script exited with code: 8
    error: Forever restarting script for 2 time

সম্পাদনা (2013-07-22)

উভয় জুড়ে যোগ করেছেন Socket.io ক্লায়েন্ট ত্রুটি হ্যান্ডলার এবং অপ্রকাশিত ব্যতিক্রম হ্যান্ডলার। দেখে মনে হচ্ছে এটি ত্রুটিটি ধরা পড়ে:

    process.on('uncaughtException', function (err) {
      console.error(err.stack);
      console.log("Node NOT Exiting...");
    });

সুতরাং আমি সন্দেহ করি এটি কোনও সকেট.ইও ইস্যু নয় তবে অন্য একটি সার্ভারের জন্য এইচটিটিপি অনুরোধ যা আমি করি বা মাইএসকিউএল / রেডিস সংযোগ। সমস্যাটি হ'ল ত্রুটিযুক্ত স্ট্যাকটি আমাকে আমার কোড সমস্যা সনাক্ত করতে সহায়তা করে না। লগ আউটপুট এখানে:

    Error: read ECONNRESET
        at errnoException (net.js:900:11)
        at TCP.onread (net.js:555:19)

আমি কীভাবে জানতে পারি যে এর কারণ কী? আমি কীভাবে আরও ত্রুটি থেকে মুক্তি পেতে পারি?

ঠিক আছে, খুব ভার্বোজ নয় তবে লংজহনের সাথে স্ট্যাকট্রেস এখানে রয়েছে:

    Exception caught: Error ECONNRESET
    { [Error: read ECONNRESET]
      code: 'ECONNRESET',
      errno: 'ECONNRESET',
      syscall: 'read',
      __cached_trace__:
       [ { receiver: [Object],
           fun: [Function: errnoException],
           pos: 22930 },
         { receiver: [Object], fun: [Function: onread], pos: 14545 },
         {},
         { receiver: [Object],
           fun: [Function: fireErrorCallbacks],
           pos: 11672 },
         { receiver: [Object], fun: [Function], pos: 12329 },
         { receiver: [Object], fun: [Function: onread], pos: 14536 } ],
      __previous__:
       { [Error]
         id: 1061835,
         location: 'fireErrorCallbacks (net.js:439)',
         __location__: 'process.nextTick',
         __previous__: null,
         __trace_count__: 1,
         __cached_trace__: [ [Object], [Object], [Object] ] } }

এখানে আমি ফ্ল্যাশ সকেট নীতি ফাইল পরিবেশন করছি:

    net = require("net")
    net.createServer( (socket) =>
      socket.write("<?xml version=\"1.0\"?>\n")
      socket.write("<!DOCTYPE cross-domain-policy SYSTEM \"http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd\">\n")
      socket.write("<cross-domain-policy>\n")
      socket.write("<allow-access-from domain=\"*\" to-ports=\"*\"/>\n")
      socket.write("</cross-domain-policy>\n")
      socket.end()
    ).listen(843)

এই কারণ হতে পারে?


3
@ গটজেড সম্ভবত এটি সহায়তা করতে পারে (নোড জেএসের মধ্যে কাজ করা কারও সাথে কথা বলেছিলেন) gist.github.com/samsonradu/1b0c6feb438f5a53e30e । আমি আজ সকেট.অরারর হ্যান্ডলার মোতায়েন করব এবং আপনাকে জানাতে দেব।
স্যামসন

1
@ গোটজ সকেট.অরার হ্যান্ডলগুলি সাহায্য করে না, তবে প্রসেস.অন ('অবিরুদ্ধ ধারণা') ত্রুটিটি ধরা পড়ে। এখানে ত্রুটির কনসোল.লগটি রয়েছে: Error [ত্রুটি: একনন্রেসিট পড়ুন] কোড: 'একনরসেট', ভুল: 'ইসনন্রেসেট', সিস্কল: 'পড়ুন'}
স্যামসন

1
ECONNRESET নেটওয়ার্ক সমস্যা হতে পারে। আপনি জানেন যে পরীক্ষার সময় সমস্ত ব্যতিক্রম ধরা অসম্ভব। কিছু আপনার উত্পাদন সার্ভারে প্রদর্শিত হবে। আপনাকে আপনার সার্ভারকে শক্তিশালী করতে হবে। রেডিসকে স্টোরেজ হিসাবে ব্যবহার করে আপনি সেশন মুছতে সক্ষম করতে পারেন। এটি আপনার নোড সার্ভারটি ডাউন হয়ে যাওয়ার পরেও আপনার সেশনগুলিকে অবিচলিত রাখে।
ব্যবহারকারীর 568109

1
কেন এটি সেশন মোছার সাথে সম্পর্কিত? সে যাইহোক রেডিস দ্বারা পরিচালিত হয়।
স্যামসন

3
আপনার কমপক্ষে একটি টিসিপি সকেট শোনা আছে যাতে হ্যান্ডলার সেট নেই। এখন এটি এখন কোথায় তা যাচাই করার সময় এসেছে: ডি
মস

উত্তর:


253

আপনি ইতিমধ্যে এটি অনুমান করতে পারেন: এটি একটি সংযোগ ত্রুটি।

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

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

উন্নয়নের জন্য দ্রুত এবং নোংরা সমাধান :

লংজহান ব্যবহার করুন , আপনি দীর্ঘ স্ট্যাক ট্রেস পাবেন যাতে অ্যাসিঙ্ক ক্রিয়াকলাপ থাকবে।

পরিষ্কার এবং সঠিক সমাধান : প্রযুক্তিগতভাবে নোডে, যখনই আপনি কোনও 'error'ইভেন্ট নির্গত করেন এবং কেউ এটি শোনে না, এটি নিক্ষেপ করবে । এটিকে নিক্ষেপ না করার জন্য এটিতে একটি শ্রোতা রাখুন এবং এটি নিজেই পরিচালনা করুন। এইভাবে আপনি আরও তথ্যের সাথে ত্রুটি লগ করতে পারেন।

একাধিক কলের জন্য একজন শ্রোতা থাকার জন্য আপনি ডোমেনগুলি ব্যবহার করতে পারেন এবং রানটাইমের সময় অন্যান্য ত্রুটিগুলিও ধরতে পারেন । কোডের অন্যান্য অংশের সাথে তুলনা করে http (সার্ভার / ক্লায়েন্ট) সম্পর্কিত প্রতিটি অ্যাসিঙ্ক অপারেশন বিভিন্ন ডোমেন প্রসঙ্গে রয়েছে তা নিশ্চিত করুন, ডোমেনটি স্বয়ংক্রিয়ভাবে errorইভেন্টগুলি শুনবে এবং এটি নিজের হ্যান্ডলারে প্রচার করবে। সুতরাং আপনি কেবল সেই হ্যান্ডলারের শোনেন এবং ত্রুটির ডেটা পান। আপনি আরও নিখরচায় তথ্য পাবেন।

সম্পাদনা (2013-07-22)

আমি উপরে লিখেছি হিসাবে:

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

কী কী ক্ষেত্রে হতে পারে: এলোমেলো সময়ে, অন্য পক্ষটি অতিরিক্ত বোঝা হয়ে যায় এবং ফলস্বরূপ সংযোগটি কেবল খুন করে। যদি এটি হয় তবে আপনি ঠিক কী সংযোগ করছেন তার উপর নির্ভর করে…

তবে একটি বিষয় অবশ্যই নিশ্চিত: আপনার টিসিপি সংযোগে সত্যই আপনার একটি পঠন ত্রুটি রয়েছে যা ব্যতিক্রম ঘটায়। আপনি আপনার সম্পাদনায় পোস্ট করা ত্রুটি কোডটি দেখে এটি দেখতে পান যা এটির নিশ্চিত করে।


এর অর্থ 'হঠাৎ বন্ধ হয়ে যাওয়ার' দরকার নেই। এটি লিখন থেকে এমন কোনও সংযোগে ফলাফল হয় যা পীর ইতিমধ্যে সাধারণত বন্ধ হয়ে গিয়েছিল। যার ফলে এটি আরএসটি জারি করবে।
মার্নকুইস লর্ন

1
@ এজেপি আমি "হঠাৎ করে" লেখার একটি ভাল কারণ ছিল। ত্রুটি (সতর্কতা নয়) বলছে সংযোগটি পিয়ারের মাধ্যমে পুনরায় সেট করা হয়েছিল। একটি বিদ্যমান সংযোগ জোর করে দূরবর্তী পিয়ার দ্বারা বন্ধ করা হয়েছিল। অপ্রত্যাশিত থেকে জোর করে বন্ধ করা হঠাৎ আকস্মিক! (দূরবর্তী মেশিনে পিয়ার অ্যাপ্লিকেশন হঠাৎ বন্ধ হয়ে গেলে, মেশিনটি পুনরায় বুট করা হয়, বা পিয়ার অ্যাপ্লিকেশনটি রিমোট সকেটে "হার্ড ক্লোজ" ব্যবহার করে) এটি সাধারণত ফলাফল দেয় " এক বা একাধিক ক্রিয়াকলাপ চলাকালীন একটি ব্যর্থতা সনাক্তকরণ… এই ক্রিয়াকলাপগুলি এবং পরবর্তী ক্রিয়াকলাপগুলি ব্যর্থ হবে))
ই-

2
আমি যখন এই ব্যাচটি পরীক্ষার জন্য ব্রাউজার (ক্রোম) থেকে একযোগে প্রায় 100 টি এপিআই কল প্রেরণ করি তখন আমি এই ত্রুটিটি ছুঁড়ে ফেলি। আমি কল্পনা করেছিলাম যে ক্রোমকে তারপরে ওভারলোড হওয়া এবং কিছু সংযোগগুলি হত্যা করতে হবে ... @ স্যামসন - নিজের ডোমেনে প্রতিটি অনুরোধটি প্রক্রিয়াকরণ করতে এবং সার্ভারটি পুনরায় চালু না করে ডোমেন ত্রুটিগুলি ধরতে কী সমস্যা?
সুপারহনি

2
@ সুপার্স্নি আপনার ডেটা, অ্যাপ্লিকেশন এবং নোড.জেএস নিজেই অজানা অবস্থায় থাকার কারণে আপনার প্রায়শই সর্বদা আপনার সার্ভারটি একটি অনাবৃত ব্যতিক্রমের পরে পুনরায় চালু করা উচিত। ব্যতিক্রমের পরে চালিয়ে যাওয়া আপনার ডেটাটিকে ঝুঁকিপূর্ণ করে তোলে। আপনি যদি আরও জানতে চান, প্রক্রিয়াতে নোডের ডক্স বা ডোমেনে নোডের ডক্স পরীক্ষা করে দেখুন ।
c1moore

39

ফ্ল্যাশ পলিসি ফাইলটি পরিবেশন করার জন্য আমার কাছে থাকা একটি সহজ টিসিপি সার্ভার এটির কারণ হচ্ছিল। আমি এখন হ্যান্ডলারটি ব্যবহার করে ত্রুটিটি ধরতে পারি:

# serving the flash policy file
net = require("net")

net.createServer((socket) =>
  //just added
  socket.on("error", (err) =>
    console.log("Caught flash policy server socket error: ")
    console.log(err.stack)
  )

  socket.write("<?xml version=\"1.0\"?>\n")
  socket.write("<!DOCTYPE cross-domain-policy SYSTEM \"http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd\">\n")
  socket.write("<cross-domain-policy>\n")
  socket.write("<allow-access-from domain=\"*\" to-ports=\"*\"/>\n")
  socket.write("</cross-domain-policy>\n")
  socket.end()
).listen(843)

2
কোডটিতে কিছু ভুল আছে? লেখার আগে সকেটটি লেখার যোগ্য কিনা তা আমার চেক করা উচিত ছিল?
স্যামসন

দোহ, দেখিনি যে আমি ইতিমধ্যে একই জিনিস পোস্ট করার আগে আপনি সমাধানটি ইতিমধ্যে খুঁজে পেয়েছেন :) আপনার প্রশ্নে যদিও, আপনি যদি সকেটটি লেখার যোগ্য কিনা তা পরীক্ষা করে দেখেন, তবে আপনি পরে এটি মাইক্রোসেকেন্ডগুলিতে লেখার সময় নাও করতে পারেন এবং তবুও একটি ত্রুটি ফেলবে, সুতরাং এটি নিশ্চিত হওয়ার "উপায়"।
জোছিম ইসাকসন

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

2
আমি সর্বদা socket.destroy()ত্রুটি হ্যান্ডলারে ফোন করে নিশ্চিত হয়েছি । দুঃখের সাথে ডকুমেন্টেশন এটির প্রয়োজন কিনা তা সন্ধান করতে পারি না, তবে এটি করার জন্য কোনও ত্রুটি নির্গত হয় না।
জোছিম ইসাকসন

socket.destroy () আমার দিনটি বাঁচিয়েছে, যাই হোক না কেন এটি কাজ করে !! ধন্যবাদ!
ফিরস আব্দ আলরাহমান

27

আমার অনুরূপ সমস্যা হয়েছিল যেখানে নোডের আপগ্রেড হওয়ার পরে অ্যাপ্লিকেশনগুলি ত্রুটিযুক্ত হয়ে যেতে শুরু করে। আমি বিশ্বাস করি যে এই আইটেমটি নোড রিলিজ v0.9.10 এ ফিরে পাওয়া যাবে:

  • নেট: একন্রেসিট (বেন নুরডহুইস) দমন করবেন না

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

আপনি এটি প্রদর্শন করতে পারেন:

একটি সাধারণ সকেট সার্ভার তৈরি করুন এবং নোড v0.9.9 এবং v0.9.10 পান।

require('net')
    .createServer( function(socket) 
    {
           // no nothing
    })
    .listen(21, function()
     {
           console.log('Socket ON')
    })

এটি v0.9.9 ব্যবহার করে শুরু করুন এবং তারপরে এই সার্ভারে এফটিপি করার চেষ্টা করুন। আমি কেবল এফটিপি এবং পোর্ট 21 ব্যবহার করছি কারণ আমি উইন্ডোজ এবং এফটিপি ক্লায়েন্ট পেয়েছি, তবে কোনও টেলনেট ক্লায়েন্ট কার্যকর নয়।

তারপরে ক্লায়েন্টের দিক থেকে, কেবল সংযোগটি ভেঙে দিন। (আমি কেবল Ctrl-C করছি)

নোড v0.9.9 ব্যবহার করার সময় আপনার কোনও ত্রুটি এবং নোড v.0.9.10 এবং তার বেশি ব্যবহার করার সময় আপনাকে ERROR দেখতে হবে।

উত্পাদনে, আমি v.0.10 ব্যবহার করি। কিছু এবং এটি ত্রুটি দেয়। আবার, আমি মনে করি এটি উদ্দেশ্যযুক্ত এবং সমাধানটি হ'ল আপনার কোডের ত্রুটিটি পরিচালনা করা।


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

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

16

আজ একই সমস্যা ছিল। কিছু গবেষণার পরে আমি একটি খুব দরকারী --abort-on-uncaught-exceptionনোড.জেএস বিকল্প পেয়েছি । এটি কেবলমাত্র আরও অনেক ভার্বোজ এবং দরকারী ত্রুটির স্ট্যাক ট্রেস সরবরাহ করে না, তবে অ্যাপ্লিকেশন ক্র্যাশের মূল ফাইলটিকে আরও ডিবাগ করার অনুমতি দেয়।


4
অদ্ভুত যে এই পুরানো প্রশ্নের নতুন উত্তরটি আমি যেমন খুঁজছি পপ আপ হওয়া উচিত - তবে এটি দুর্দান্ত, ধন্যবাদ
সেমিকোলন

13

আমি একই সমস্যার মুখোমুখি হয়েছি কিন্তু আমি রেখে দিয়ে তা প্রশমিত করেছি:

server.timeout = 0;

আগে server.listenserverএখানে একটি HTTP সার্ভার। ডিফল্ট সময়সীমা API ডকুমেন্টেশন অনুযায়ী 2 মিনিট ।


5
এটি কোনও সমাধান নয় বরং একটি কুইকফিক্স যা কোনও ত্রুটি না ছুঁড়ে দিয়ে জিনিসগুলিকে ভেঙে ফেলবে।
নিশান্ত ঘোদকে

9

অন্য একটি সম্ভাব্য কেস (তবে বিরল) হতে পারে যদি আপনার সার্ভার যোগাযোগের জন্য সার্ভার থাকে এবং server.maxConnectionsখুব কম মান সেট করে।

নোডের কোর লিব নেট.জেএস এ এটি কল clientHandle.close()করবে যা ত্রুটির কারণও তৈরি করবে অর্থনীতি:

if (self.maxConnections && self._connections >= self.maxConnections) {
  clientHandle.close(); // causes ECONNRESET on the other end
  return;
}

দুর্দান্ত কল, তবে maxConnectionsডিফল্ট মান Infinity। এটি কেবলমাত্র তখনই হবে (যেমন আপনি বলেছেন) আপনি যদি সেই মানটি স্পষ্টভাবে ওভাররাইড করে থাকেন।
গজুস

7

হ্যাঁ, নীতি ফাইলটি সরবরাহ করা অবশ্যই ক্র্যাশের কারণ হতে পারে।

পুনরাবৃত্তি করতে, কেবল আপনার কোডে একটি বিলম্ব যুক্ত করুন:

net.createServer( function(socket) 
{
    for (i=0; i<1000000000; i++) ;
    socket.write("<?xml version=\"1.0\"?>\n");

… এবং telnetবন্দরে সংযোগ করতে ব্যবহার করুন । যদি আপনি বিলম্বের মেয়াদ শেষ হওয়ার আগে টেলনেটকে সংযোগ বিচ্ছিন্ন করে দেন, সকেট.উইরাইটে ত্রুটি ছুঁড়ে ফেলা হলে আপনি একটি ক্র্যাশ (অবিচ্ছিন্ন ব্যতিক্রম) পাবেন।

এখানে ক্রাশ এড়াতে, সকেটটি পড়ার / লেখার আগে কেবল একটি ত্রুটি হ্যান্ডলার যুক্ত করুন:

net.createServer(function(socket)
{
    for(i=0; i<1000000000; i++);
    socket.on('error', function() { console.log("error"); });
    socket.write("<?xml version=\"1.0\"?>\n");
}

আপনি উপরের সংযোগ বিচ্ছিন্ন করার চেষ্টা করলে আপনি ক্র্যাশের পরিবর্তে একটি লগ বার্তা পাবেন।

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


6

আমি আমার বিকাশের সময় ECONNRESET ত্রুটিটিও পেয়েছি, আমি যেভাবে এটি সমাধান করব তা হল আমার সার্ভারটি শুরু করার জন্য নোডমন ব্যবহার না করে, কেবল "node server.js"আমার সার্ভারটি শুরু করার জন্য আমার সমস্যাটি স্থির করে।

এটি অদ্ভুত, তবে এটি আমার পক্ষে কাজ করেছিল, এখন আমি আর কখনও অর্থনীতি সংক্রান্ত ত্রুটি দেখতে পাচ্ছি না see


4

আমার এই ত্রুটিটিও ছিল এবং ডিবাগিং এবং বিশ্লেষণের কয়েক দিন পরে এটি সমাধান করতে সক্ষম হয়েছি:

আমার সমাধান

আমার জন্য ভার্চুয়ালবক্স (ডকারের জন্য) ছিল সমস্যা। আমার ভিএম-তে পোর্ট ফরওয়ার্ডিং কনফিগার করা ছিল এবং ত্রুটিটি কেবল ফরওয়ার্ড করা পোর্টেই ঘটেছে।

সাধারণ সিদ্ধান্ত

নিম্নলিখিত পর্যবেক্ষণগুলি আপনাকে বিনিয়োগ করতে হয়েছিল এমন কাজের দিনগুলি বাঁচাতে পারে:

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

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


2

আমি কেবল একটি ভিন্ন নেটওয়ার্কের সাথে সংযোগ স্থাপন করে সমস্যার সমাধান করেছি । এটি সম্ভাব্য সমস্যাগুলির মধ্যে একটি।

উপরে আলোচিত হিসাবে, একনরসেট মানে টিসিপি কথোপকথনটি হঠাৎ করে সংযোগটির সমাপ্তি বন্ধ করে দিয়েছে।

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


এইটি আমার জন্য কাজ করেছে, আমার কোড যা বেশ কয়েক ঘন্টা আগে কাজ করে যাচ্ছিল হঠাৎ কাজ বন্ধ করে দিয়েছে, দেখা যাচ্ছে, নেটওয়ার্ক পরিবর্তনের কারণে সমস্যা দেখা দিয়েছে
অলঙ্ক জৈন

2

আমি এই সমস্যার সমাধান করেছি এর দ্বারা:

  • আমার ওয়াইফাই / ইথারনেট সংযোগ বন্ধ করে চালু করুন।
  • আমি টাইপ করেছি: npm updateএনএমপি আপডেট করার জন্য টার্মিনালে।
  • আমি অধিবেশন থেকে লগ আউট এবং আবার লগ ইন করার চেষ্টা করেছি

এর পরে আমি একই এনপিএম কমান্ডটি চেষ্টা করেছিলাম এবং ভাল জিনিসটি এটি কার্যকর হয়েছিল। আমি নিশ্চিত ছিলাম না যে এটি এত সহজ।

আমি সেন্টস 7 ব্যবহার করছি


0

আমার একই সমস্যা ছিল এবং এটি নোড.জেএস সংস্করণে সমস্যা ছিল বলে মনে হয়।

আমি নোড.জেএস এর পূর্ববর্তী সংস্করণটি ইনস্টল করেছি (10.14.2) এবং এনভিএম ব্যবহার করে সবকিছু ঠিকঠাক হয়েছিল (আপনাকে নোড.জেএস এর বেশ কয়েকটি সংস্করণ ইনস্টল করতে দেয় এবং দ্রুত কোনও সংস্করণ থেকে অন্যটিতে স্যুইচ করে দেয়)।

এটি কোনও "পরিষ্কার" সমাধান নয়, এটি সাময়িকভাবে আপনাকে পরিবেশন করতে পারে।


0

অন্তত আমার ব্যবহারের ক্ষেত্রে আমি এটি সন্ধান করেছি।

আমি পেয়েছিলাম ECONNRESET। এটি প্রমাণিত হয়েছে যে আমার ক্লায়েন্টটি যেভাবে সেট আপ হয়েছিল, এটি একটি API কল দিয়ে সার্ভারটি হট করছে সত্যিই খুব দ্রুত - এবং এটি কেবল একবারে শেষ পয়েন্টে আঘাত করা দরকার।

আমি যখন এটি স্থির করেছি, ত্রুটিটি চলে গেছে।


-2

Socket.io এ এই বিকল্পগুলি যুক্ত করার চেষ্টা করুন:

const options = { transports: ['websocket'], pingTimeout: 3000, pingInterval: 5000 };

আমি আশা করি এটা তোমাকে সাহায্য করবে !

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