কেভিন Schmid: সবাই হ্যালো. CS50 সেমিনার স্বাগতম কলব্যাক নেভিগেশন আমার নাম কেভিন হয়. আমি একটি CS50 TF আছি. এবং আমি বাছাই করা সত্যিই উত্তেজিত ভালো আছি এই সেমিনারে সম্পর্কে. আমি Node.js খুব শান্ত মনে করি. আমি এই সেমিনার ব্যবহার করা যাবে আশা করি জন্য ভাল, আমি অনুমান, springboard হিসাবে আপনার চূড়ান্ত প্রকল্পে যদি কিছু আপনি ব্যবহার করতে আগ্রহী হন কলব্যাক মত কিছু আমরা বাছাই করে সেমিনার চলতে শুরু করব শুধু সামান্য বিট সম্পর্কে কথা পটভূমি বৃদ্ধির উদ্দেশ্যে ধরনের তারপর Node.js এর দৃষ্টিকোণ, এবং আমরা কিছু কোড উদাহরণ অগ্রসর হবেন. এবং আমি একটি ওয়েবসাইটে কোড করতে হবে, এবং আপনি কোড তাকান পারেন. এবং সেমিনার পরে, আমি আলাপ বাছাই করব আপনি Node.js সেট আপ করতে পারেন সে বিষয়ে আপনার কম্পিউটারে. ঠিক আছে. সুতরাং আসুন শুরু করা যাক. তাই আমি মনে করি আমি শুধু সম্পর্কে কথা বলতে চান অনুমান ওয়েব সার্ভার, সত্যিই, প্রথম. এবং এই আলোচনা শুরু করতে, আমি মূলত থেকে, যা একটি ডায়াগ্রাম আছে CS61 জন্য ব্যবহার পাঠ্যপুস্তক, যা মূলত মিথস্ক্রিয়া দেখায় আপনার ওয়েব মত একটি ক্লায়েন্ট প্রক্রিয়া, এর মধ্যে ব্রাউজার অথবা আপনার উদ্দেশ্য ক্লায়েন্ট বা ভালো যে ভালো কিছু, এবং একটি ওয়েব সার্ভার. তাই এই ধরনের অনুরূপ দেখায় আপনার উপর বক্তৃতায় দেখেছি যে ছবি বুধবার যেখানে মূলত আমরা কিছু আছে গুগল ক্রোম মত ক্লায়েন্ট প্রক্রিয়া. এবং তারপর ধাপে এক ক্লায়েন্ট একটি অনুরোধ পাঠায়. তাই কিছু যে মত ভাল যাক এর হতে পারে যান, আমি, CS50.net জানি না. সুতরাং আমরা যে অনুরোধ ইস্যু. আর কারো নাম মনে রাখতে না কিভাবে যে নির্দিষ্ট করে যে প্রোটোকল অনুরোধ কাঠামোবদ্ধ করা উচিত? হাঁ. AUDIENCE: [শ্রবণাতীত]. কেভিন Schmid: যথাযথভাবে. সুতরাং এটি অধিকার, HTTP-র মত? কিভাবে জন্য তাই মূলত স্পেসিফিকেশন যে অনুরোধ আসলে পাড়া করা উচিত আউট, কারণ দিনের শেষে, যে অনুরোধের সত্যিই ঠিক পছন্দ হয় একটি স্ট্রিং যে মূলত আমি এই চান বলল. এবং স্পেসিফিকেশন যে জন্য HTTP-র হয়. যাতে এর একটি প্রোটোকল মত. আমি তখন সার্ভার পায় যে অনুরোধ. তাই আপনাকে বলছি ওয়েব সার্ভার ইনস্টল করা CS50 প্রয়োগ মধ্যে. এটা এ্যাপাচি এর. এবং এই সপ্তাহে আপনি সমস্যার কাজ যখন সাত সেট, আপনি আসলে কাজ করব যে ওয়েব সার্ভারের সাথে. তাই সার্ভার যে অনুরোধ গ্রহণ করে, এবং তারপর এটি ধরনের স্ক্র্যাচ আছে তার মাথা এবং কি ভাল মত বলে আমি এই সাথে করব? সুতরাং, তারপর কি সিদ্ধান্ত নেয় তা উপর ভিত্তি করে এটা কোন ধরণের যোগাযোগ করতে হতে পারে সম্পদ. এবং যে সম্পদ একটি হতে পারে বিভিন্ন জিনিস অনেক. কিন্তু, এটা হতে পারে শুধু একটি স্ট্যাটিক এইচটিএমএল ফাইলের মত. তাই এটি শুধু কিছু ভালো হতে পারে জন্য ভালো যে এইচটিএমএল আপনার ব্যক্তিগত ওয়েবসাইট. এটি একটি চিত্র মত একটি স্ট্যাটিক ফাইল হতে পারে অথবা আপনি যে একটি সিনেমা মত. এটি এমনকি কথা বলতে পারে ডাটাবেসের কিছু করার একটি MySQL ডাটাবেসের মত. সুতরাং সর্বদা যোগাযোগ করতে নেই একটি সম্পদ, কিন্তু মধ্যে দিয়ে কিছু ক্ষেত্রে, এটি পারা. আমি তখন এটা করতে কি ঘটছে এর পর তা যাচ্ছে হয় প্রতিক্রিয়া ফেরত পাঠান. এবং এই জন্য প্রতিক্রিয়া এছাড়াও HTTP-র দ্বারা নির্দিষ্ট. আমি তখন ক্লায়েন্ট তা পেতে পারেন. এটা বাদে এটা বিছিন্ন এবং এটি প্রক্রিয়া করতে পারি. এবং তারপর আপনি একটি ওয়েব পাতা পাবেন যেমন গুগল বা CS50.net বা আপনি চলে যান যাই হোক না কেন. ঠিক আছে? তাই এই মৌলিক মিথস্ক্রিয়া যে আমরা সাথে ডিল করা চলুন. এবং আমরা প্রায় কাছাকাছি হতে যাচ্ছেন এই অংশে উপর মনোযোগ নিবদ্ধ মিথষ্ক্রিয়া, সার্ভার. ঠিক আছে. কুল. কেহ এ পর্যন্ত কোন প্রশ্ন থাকে? ঠিক আছে. আমরা বলেন সুতরাং হিসাবে, ওয়েব সার্ভার পায় তাহলে এই HTTP-র অনুরোধ এবং এই বিষয় HTTP প্রতিক্রিয়া. এবং ভালো আমরা, আগে স্বপ্ন CS50 প্রয়োগ ওয়েব সার্ভার এ্যাপাচি হয়. আপনি না কাজ সুতরাং যখন পি, সাত সেট আপনার সাথে কাজ করা চলুন Apache ওয়েব সার্ভার. আপনি সত্যিই কাজ করতে হবে না সরাসরি অত্যধিক এ্যাপাচি সঙ্গে. আপনি ধরণের এ্যাপাচি একটু কনফিগার আপনি ভার্চুয়াল হোস্ট বা নির্দিষ্ট সময় V হোস্ট, এবং আমরা কিনবো অল্প যে যাও. কিন্তু মূলত, Apache ওয়েব সার্ভার পিএইচপি ধরনের সঙ্গে কাজ করার স্থাপন এর বাক্সের বাইরে. আপনি যেতে সুতরাং যখন কি সত্যিই এরকম হয় বলতে চাই আপনার ওয়েবসাইটের এক, স্থানীয় হোস্ট স্ল্যাশ index.php বা কিছু, আপনার ব্রাউজার পাঠায় যে অনুরোধ, এবং তারপর এ্যাপাচি বসা হয় আছে এবং এটি কি পরিসংখ্যান আউট. এবং কর্ম সঞ্চালনের হয় যে index.php সালে কোড এবং তারপর ফিরে এটি বন্ধ পাঠাতে. সুতরাং যে আছে. সুতরাং আমরা ধরণের এই সম্পর্কে বললাম. তাই এটি শুধু একটি স্ট্যাটিক ফাইল পরিবেশন করা যেতে পারে বা সমস্যা তারপর কিছু পিএইচপি কোড রান এবং প্রতিক্রিয়া. আসতে পারে যে আমি তখন একটি সাধারণ প্রশ্ন আপ ঠিক থাকে, কিভাবে সত্যিই আমরা মোকাবিলা করব একাধিক ব্যবহারকারী থাকার সঙ্গে একই সময়? আপনি একটি ওয়েব লেখা হয়েছে কিনা তাই কল্পনা সার্ভার, আপনি একটি ওয়েব সার্ভার ছিল যে আপনি কিছু লিখতে চেষ্টা ছিল সি বা যে মত কিছু মত, মূলত আপনি সম্পর্কে চিন্তা করতে পারেন কিভাবে আছে কোড কোন ধরণের হতে পারে তারপর অনুরোধ প্রাপ্ত, কিন্তু হবে তা সব এই কাজ করতে হয়েছে. এটা, যেমন, সাথে যোগাযোগ করতে হতে পারে ডাটাবেস বা যে ভালো কিছু. রাইট? এবং তারপর এটি যে ধরনের কাজ করবে প্রক্রিয়াকরণ এবং তারপর প্রতিক্রিয়া ফেরত পাঠানো. সুতরাং যে উচ্চ মত স্তর ওভারভিউ. কিন্তু এটা অবিলম্বে সুস্পষ্ট না আপনি কিভাবে কিছু করতে পারি যাতে করে দুই জনের বা এমনকি 1,000 মানুষের সঙ্গে কাজ করতে পারেন আপনার একই সময়ে ওয়েব সার্ভার. সুতরাং এ্যাপাচি ব্যবহার করে সমাধান থ্রেড বা প্রসেস বলা হয়. তাই আপনাদের মধ্যে শুনে থাকতে পারেন আগে এই পদ. এটা আপনি না থাকে তাহলে ঠিক আছে, কিন্তু ঠিক মনে করি জন্য উপায় হিসেবে থ্রেড বা প্রসেস সম্পর্কে একটি অপারেটিং সিস্টেম অথবা একটি ব্যবহারকারী প্রোগ্রাম বা যে ভালো কিছু বা ওয়েব সার্ভার ধরণের একাধিক চালানো একযোগে জিনিস. সুতরাং আপনি শব্দটি শুনে থাকতে পারেন মৃত্যুদন্ড থ্রেড মত. আপনি ভালো সুতরাং ধরনের আছে multitasking ধরণের. এবং আপনি এর বক্স দেখা করেছি যদি আপনার ল্যাপটপ, বা যে ভালো কিছু, আপনি কি করতে পারেন মাল্টিকোর, আপনি যা করতে পারেন হয় ভিন্ন দুটি ভিন্ন থ্রেড চালানো CPU-র অংশ তারা করতে পারেন যাতে আসলে একই সময়ে ঘটতে. তাই এই সত্যিই শক্তিশালী. এবং এই এ্যাপাচি এর ধরনের এই সমস্যার সমাধান. সুতরাং ধরনের কোন বিষয় মত আছে যদিও এই পদ্ধতির সঙ্গে? তাই আমি আমি ধরনের আছে তাদের লিখেছিলেন অনুমান. কিন্তু দুইটাই ধরণের মেমরি অনেক ব্যবহার. এটি তৈরি করতে খুব ব্যয়বহুল একটি থ্রেড বা একটি প্রক্রিয়া. এবং যুক্তি অংশ যে শুধু যেমন আপনি একটি সি প্রোগ্রাম চালাচ্ছেন যখন আপনার প্রধান মত এবং তারপর যে কল আরেকটি ফাংশন, যা আছে স্ট্যাকের কিছু. তাই থ্রেড এছাড়াও সম্পূর্ণরূপে একটি প্রয়োজন পৃথক স্ট্যাকের যা বেশ বড় হতে পারে. এবং আপনি কল্পনা করতে পারেন, যদি টন হচ্ছে আপনার ওয়েবসাইটে ব্যবহারকারী, আপনার থাকতে হবে বিভিন্ন থ্রেডের অনেক. এটা করতে stacks অনেক পরিচালনা এবং বজায় রাখা. সুতরাং এটি বৃহৎ মেমরি ব্যয় করে. এবং তারপর, এছাড়াও এর আপনি শুধুমাত্র আছে বলা যাক এক CPU-র, বা এর আপনার থাকতে বলা যাক আপনি বেশী থ্রেড যারা multicores. রাইট? সুতরাং আসুন যদি আপনি 10 থ্রেড ছিল বলা যাক এবং আপনি মাত্র পাঁচ CPU-ছিল. আপনি ধরনের এই জিনিস যা করতে হবে যেখানে আপনি বর্তমান মধ্যে পরিবর্তনকালে আপনি কারণ চলমান যে এক একযোগে সমস্ত 10 রান করতে পারবে না. এবং যে একটি কনটেক্সট সুইচ বলা হচ্ছে. এবং যে শব্দটি আসলে একটি দম্পতি আছে ভিন্ন প্রেক্ষিতে, কিন্তু ঠিক এর যাক সুইচিং হিসাবে মনে করি দুই থ্রেড মধ্যে. যে বেশ ব্যয়বহুল হতে পারে, কারণ মূলত কি আপনাকে যা করতে হবে আপনি হয় আপনি কি করছেন বন্ধ করতে হবে, সংরক্ষণ যে চলমান থ্রেড এর রাজ্য তারপর অন্য কোথাও সুইচ. তাই সবাই ধরনের দেখতে না কেন থ্রেড এবং এর প্রেরণা প্রসেস একটু ভারী হতে পারে? এবং যদি আপনি একটি প্রশ্ন আছে? ঠিক আছে. কুল. কেহ কোন প্রশ্ন থাকে? ঠিক আছে. সুতরাং আমরা একটি দ্বিতীয় জন্য ফিরে একটি পদক্ষেপ নিতে হলে, ধরনের একটি মত আছে আমরা যে বিষয়ে করতে পারেন পর্যবেক্ষণ ওয়েব অ্যাপ্লিকেশন অনেক. এবং যে সত্যিই যে তাদের অনেক আসলে না যে অনেক দরকারী একটি থ্রেড ভেতরে কাজ. তাই কারো উপর শুরু হয়েছে পি এ সব সাত সেট? সুতরাং আপনি হয়তো বর্ণনা করতে চান অংশ কিছু? আপনি লগইন উপর কাজ করেছি অথবা যে ভালো কিছু? AUDIENCE: নং কেভিন Schmid: ঠিক আছে. কিছু মনে করবেন না. দুঃখিত. কিন্তু মূলত, পি সেটে, আপনি আছেন ধরণের অনেক তৈরীর করা যাচ্ছে কিছু পেতে একটি ডাটাবেসে অনুসন্ধান যে ডাটাবেস থেকে তথ্য. এবং কি আপনার কোড কাজ করা যাচ্ছে, কি যে এ্যাপাচি প্রক্রিয়া বা এ্যাপাচি থ্রেড কাজ করা যাচ্ছে যে এটা সাথে যোগাযোগ আছে, যখন ডাটাবেস এটা ধরণের হতে যাচ্ছে হয় সেখানে বসা এবং এটি হতে যাচ্ছে ডাটাবেস উত্তর জন্য অপেক্ষা করছে. এখন যে যে বড় একটি মত শব্দ হতে পারে ডাটাবেস আপনার উপর কারণ কারবার CS50 প্রয়োগ, ডান? কিন্তু নেটওয়ার্কের কিছু নেই সেখানে লেটেন্সি এখন ওয়েব কারণ সার্ভারের সাথে নিজস্ব অনুরোধ জারি করেছে সাথে যোগাযোগের জন্য ডাটাবেস ডাটাবেস এবং তারপর যে পান তথ্য ফিরে. তাই এখন আমি আছি, ভাল আমার জন্য অপেক্ষা করার মত যেতে হবে থেকে কিছু পেতে ডাটাবেস এবং তারপর একটি আছে যাওয়া অপেক্ষা অনেক. যে জানার জন্য? এবং কিছু জিনিস জন্য এটা যে খারাপ না. এটি ঠিক আছে যদি, উদাহরণস্বরূপ, এক্সেস মেমোরি, যা পছন্দ করি না ভয়ঙ্কর ইনপুট / আউটপুট লেটেন্সি. আমি বলতে এবং যখন, ইনপুট / আউটপুট লেটেন্সি, আমি আছি কি উল্লেখ মত যে কোন ধরণের মত হল ইনপুট আউটপুট. কিন্তু মত, ডিস্কে একটি ফাইল অ্যাক্সেস করতে আমি স্ট্যাটিক এইচটিএমএল পরিবেশন চেয়েছিলেন দায়ের যে আমার ওয়েব পেজে ছিল বা যে ভালো কিছু, আমি ধরনের আছে একটি বিট জন্য বন্ধ, যে ফাইল পড়া ডিস্ক থেকে, এবং তারপর মধ্যে মধ্যে যে প্রক্রিয়ায় আমি অপেক্ষা করছি. আমি দরকারী কাজ করছেন না. এই সবকিছু সত্য হয় না, কিন্তু পি সেট মত অ্যাপ্লিকেশনের ক্ষেত্রে সাধারণ সাত এবং অ্যাপ্লিকেশন অনেক আপনি না হন যে আসলে অনেক কিছু চিন্তা করছেন. আমি চিন্তা বলে যখন, আমি বলতে চাচ্ছি গণনীয় কাজের মত. সুতরাং গণনীয় কাজ কিছু হতে পারে চাই, বলতে আপনি চেয়েছিলেন শুধু নির্ণিত যে একটি ওয়েব সার্ভার লিখুন n তম Fibonacci সংখ্যা. এটা একটি বিশেষ মত লাগছে না মজার ওয়েব সার্ভার. ভালো লেগেছে আমি যে সাইট হতে আশা না পরবর্তী ফেসবুক, কিন্তু যে কিছু হয় গণনীয় কাজের ধরনের. আর আপনার সাথে যে পরিবর্তন কল্পনা করতে পারেন আকর্ষণীয় কিছু অন্য ধরনের গণনীয় কাজ. এর আপনি কিছু লেখা ছিল বলে যে ডিগ্রী হিসাব দুই জনের মধ্যে বিচ্ছেদ অথবা যে ভালো কিছু. সুতরাং যে কোন ধরণের কাজে নিযুক্ত আছে হিসাব, ​​ডান? এমনকি তারপর, আপনি কি এখনও আছে যে কি হয়তো জন্য অপেক্ষা অনেক কাজ করার আপনি সন্ধান করতে একটি ডাটাবেস অনুসন্ধান করতে হবে আপ কে কে বা সাথে বন্ধু আছে যে ভালো কিছু. তাই ধারণা যে ধরনের আছে এর গণনীয় কাজ. যে জানার জন্য? কেহ কোন প্রশ্ন আছে? ওহ এবং আমি আমি সেখানে চ্যাট সার্ভার রাখা অনুমান চ্যাট সার্ভার ধরনের কারণ এই আরেকটি ভাল উদাহরণ. একটি চ্যাট সার্ভার নেই অনেক চিন্তা করবেন. এটা ঠিক মানুষের জন্য অপেক্ষা করতে হয়েছে বার্তা এবং তারপর যখন প্রেরণ তারা প্রেরণ করবেন. ঠিক আছে? তাই শুধু আবার সংক্ষিপ্তবৃত্তি যাও, এ্যাপাচি এবং যে কাঁটাচামচ একটি মত অনুরূপ ওয়েব সার্ভার থ্রেড ও প্রসেসের অনেক যা ধরনের অযথা হতে পারে. তাই আমি আসতে পারে যে প্রশ্ন অনুমান যা থেকে আমরা আছে প্রয়োজন হয় একাধিক থ্রেড এবং প্রসেস? আমরা কি শুধু একটা ছিল তাহলে কি হবে? সুতরাং আসুন ধরনের একটি ছবি আঁকা যাক ভালো দেখাবে কি. সুতরাং এর মধ্যে শুধুমাত্র একটি থ্রেড ব্যবহার করতে দিতে. ঠিক আছে? তাই শুধু একটা থ্রেড সঙ্গে এই কল্পনা. এর আমরা সত্যিই করছেন না অনুমান করা যাক যে অনেক দরকারী - এবং আমি বলতে যখন দরকারী, আমি গণনীয় কাজ মানে - আগে যারা একাধিক থ্রেড মধ্যে. সুতরাং আসুন ধরনের একত্রীকরণ যাক এক থ্রেড মধ্যে সবকিছু. তাই আমরা এক থ্রেড যে ধরনের ছিল শুধু লুপ কাছাকাছি যায় এবং ক্রমাগত চেক কিছু করেছিল নতুন ঘটবে. সুতরাং উদাহরণস্বরূপ, কিছু নতুন ঘটেছে আমি থেকে ফিরে কিছু না হতে পারে পাঠানো ডাটাবেস, অথবা কারো আমার একটি নতুন HTTP-র অনুরোধ. তাই ঐ ঘটনা ধরনের হয় যে অধিকার, ঘটবে? এবং তারপর আমি কি করতে পারেন যখন যারা নতুন এরকম জিনিষ এই একই থ্রেড হয় মৃত্যুদন্ড, এই একক থ্রেড মৃত্যুদন্ড, আমি কিছু কোড কল করতে পারেন যে সেই বিশেষ জিনিসটি সব ব্যবস্থা করবে. সুতরাং উদাহরণস্বরূপ, আমি কিছু না করে যদি ফিরে ডাটাবেস থেকে, আমি চালাতে পারে আমার এটি ছোট গণনীয় ভাগে যে আসলে ঠিক করার জিনিস দেয়ঃ ব্যবহারকারী ফিরে পাঠান. তাই জানার তজ্জাতীয় করে? কিন্তু সত্যিই কি এই প্রভাব? রাইট? আমরা লিখিত করেছি কারণ কোড যে অনেক - এবং আমি এগিয়ে তিড়িং লাফ যাচ্ছি এটা ঠিক আছে যদি স্লাইড মধ্যে. আপনি কিছু মনে না করেন সুতরাং, যদি আমি আছি শুধু ফিরে একটি পদক্ষেপ নিতে যাচ্ছে. তাই আর এই ধরনের হয় একটি ঘটনা লুপ বলা. ঠিক আছে? এবং এটা মৌলিক ধরনের কলব্যাক পিছনে ধারণা Node.js সত্যিই একটি ওয়েব হিসাবে করছে তাই সার্ভার একটি থ্রেড আছে হয় যে মূলত একটি লুপ চারপাশে যাচ্ছে অধীন একটি সময় এক ধরনের মত ক্রমাগত যে Node.js এর ফণা পরীক্ষণ, আমরা নতুন জিনিস গ্রহণ করেছেন? এবং তারপর এটা হ্যান্ডলার চালানো হবে আপনি সেট আপ করে. কিন্তু জিজ্ঞাসা করতে একটি ভাল প্রশ্ন হয় কিভাবে আমরা এই ঘটতে পারে বিদ্যমান জিনিস দিয়ে? তাই আমি এখানে সি কোড একটি লাইন করা যে এটি খোলার মত মূলত দেখায় একটি অধিকার, দায়ের? আমি সে একটি অ্যালবাম সঙ্গে বেরিয়ে আসেন. তাই আমি তার একটি নতুন ফাইল খোলা হয়. তাই উপায় অপারেটিং জন্য আমাদের সি কোড - এবং আমি ফাইল বেছে কারণ ছিল অনুমান এই পরিমাণে ধরনের কারণ আমরা এ সি সম্পন্ন করেছি যে ইনপুট / আউটপুট কাজের ইনপুট আউটপুট আছে যে একটা ধারনা. সুতরাং আমরা এই কোড যে কল এই চ খোলা আছে. এবং তারপর আমাদের পরবর্তী লাইনে প্রোগ্রাম, এখন আমরা চ সঙ্গে কাজ করতে পারেন. তাই এই কিছু একটি উদাহরণ হবে যে সমকালীন বা মত আছে যে প্রথম লাইনে কারণ অবরুদ্ধ সেখানে আমরা আমরা যতক্ষণ অপেক্ষা করছি ফাইলটি ওপেন করুন. তাই দ্বিতীয় লাইনে, আমরা জানি যে আমরা চ সঙ্গে কাজ, কিন্তু এই অর্থ করতে পারেন যে দ্বিতীয় লাইন সত্যিই চালাতে না পারেন প্রথম লাইন সম্পন্ন না হওয়া পর্যন্ত. যে জানার জন্য? তাই এই লাগাতে খারাপ হবে একটি ইভেন্ট হ্যান্ডলার মধ্যে. এবং যে জন্য কারণ যে হয় অপেক্ষা এই ধরণের, ডান? তাই এই আমাদের ফিরে প্রত্যাবর্তন করবে একই জিনিস করতে. এবং এখন আমরা এমনকি করা সম্ভব নয় একাধিক থ্রেড সুবিধা বা প্রসেস আমরা পেয়েছিলাম কারণ কলব্যাক এক থ্রেড যে সবাই জানার জন্য? AUDIENCE: অপেক্ষা করুন. তাই প্রতিস্থাপন কি? কেভিন Schmid: ওহ, তাই হ্যাঁ. তাই আমি পেতে চলেছি প্রতিস্থাপন. ঠিক আছে. আমরা কিছু ছিল তাই কি যদি যে ভালো লাগছিল? তাই কি আমি সম্পাদিত এখন যদি চ একটু খোলা? তাই আমি একই কথা প্রসঙ্গে করছি আগে হিসাবে দুটি আর্গুমেন্ট. আমি এখনও নতুন গান ভালোবাসি সে সঙ্গে বেরিয়ে আসেন যে. কিন্তু আমি একটি তৃতীয় জিনিস পার করছি যা এই পরিবর্তনশীল কোড বলা হয়. কিন্তু কোড আসলে কি এই প্রেক্ষাপটে? এটি একটি নিয়মিত সি ভেরিয়েবল মত কি? এটা ঠিক, একটি ফাংশন আছে? এবং যে কারণ একটু অদ্ভুত হতে পারে আমি আসলে এখন ক্ষণস্থায়ী ভালো আছি একটি অন্য ফাংশন মধ্যে ফাংশন. এই সম্পর্কে খেয়াল করা তাই কয়েক জিনিষ. এক, আমি আসলে আহ্বান করছি না কোড ফাংশন. তাই আপনার সাথে কোড দেখতে না বাম বন্ধ, ডান বন্ধ. আমি শুধু কোডের পার করছি. এবং সি, আসলে এই কি করতে হবে যে প্রকৃত আমাকে একটি পয়েন্টার দিতে হয় কোড, এবং তারপর এই এটি চালানো হবে. আপনি কিন্তু শুধু এটা আমার মনে হয় চালাতে কোড ক্ষণস্থায়ী যখন যে ফাইল খোলা হয়. কিন্তু কি এই মানে হল যে এখন যেত না যা আমার প্রোগ্রাম বাকি অন্যান্য উপাদান, অন্যান্য কাজ চালিয়ে যেতে পারেন স্টাফ আমরা সত্যিই অপেক্ষা, কিন্তু না যখন শুধু আমাদের মাথা পিছন আছে যখন যে ফাইল এর খোলা, রান যে শীর্ষে অবস্থান. যে জানার জন্য? এবং এখন Node.js পিছনে ধারণা হয় যে চ সঙ্গে বিক্ষোভ স্টাফ মধ্যে কোড অংশ বেশ ছোট এবং সহজ হওয়া উচিত সত্যিই হতে হবে এবং সহজবোধ্য এবং না নিবিড় খুব computationally. এটা অন্য ফাইল খোলার জন্য আছে, কিন্তু পারে যে এছাড়াও বেশ দ্রুত হওয়া উচিত এটা শুধু আরেকটি ফল কি বলতে হবে, কারণ খুলুন এবং তারপর এই অন্যান্য কোড কল. তাই শুধু সম্পূর্ণভাবে পরিষ্কার, ফল হতে যে খুলুন নতুন পেরি Katy গান আছে সম্পন্ন MP3, যে যাচ্ছে বেশ অনেক অবিলম্বে ফিরে. এবং তারপর আমরা শুধু কাজ চালিয়ে যেতে পারেন অন্যান্য উপাদান কারণ যে এখন চ সব খোলা কল মূলত বলতে হয় না অন্তর্নিহিত চ খোলা কোড এই ফাইলটি খুলুন এবং আপনি এই খোলার কাজ সম্পন্ন হয় যখন আপনি তা ফেরত পেতে যখন ফাইল বা, তারপর যে কোড রান. কিন্তু এটা আসলে যে কোড রান করা হয় না. এবং যদি আপনি একটি প্রশ্ন ছিল? AUDIENCE: আপনি কয়েকটি পরোক্ষভাবে করলো কম্পিউটারের গণনার যোগ করার যে বার নিবিড় কোড ধরণের বিরতি [শ্রবণাতীত] চালিত সিস্টেম. [শ্রবণাতীত]? কেভিন Schmid: এটা একটি বড় প্রশ্ন. তাই আমি আসলে কিভাবে একটি উদাহরণ আছে আপনি computationally সংহত পারে অল্প মধ্যে নিবিড় কোড. সুতরাং আমরা কোড উদাহরণ পেতে হলে, আমি যে এক টান নিশ্চিত হবেন. যে ঠিক আছে কি? আপনাকে ধন্যবাদ. আপনার নাম কি ছিল? AUDIENCE: আরন. কেভিন Schmid: আরন খুব দেখাবে যা ভাল পয়েন্ট, যে আমি ছিল কিছু computationally নিবিড় কোড চ অংশ, বাকি সাথে স্টাফ আমার প্রোগ্রাম চালাতে না পারেন এবং শুনতে না পারে সব না হওয়া পর্যন্ত নতুন অনুরোধ বা কিছু জন্য যে উপাদান সমাপ্ত হয়. তাই আমি সাধারণ নোড কোড লিখছি না হলে আমি চলেছি মত আমরা কিছু করতে, যদি না আমরা তাকান যখন পরে সুপারিশ কোড উদাহরণ, আমি নিশ্চিত যে হতে হবে আমার কোড পর্যন্ত গিঁট না এই ঘটনা লুপ. যে জানার জন্য? ঠিক আছে. কুল. সুতরাং Node.js এই কাঠামোর প্রস্তাব আপনি চালিত এই ইভেন্ট নির্মাণ করতে পারেন সাথে সার্ভার. সুতরাং এটা অ্যাসিঙ্ক্রোনাস এই ধরনের আছে যেহেতু, ইনপুট / আউটপুট লাইব্রেরি অ অবরুদ্ধ আমরা চলেছি যে প্রমিত সি লাইব্রেরি , সঙ্গে কাজ মত যদি আপনি শুধু আমরা করেছি যে একই ভাবে তাদের ব্যবহার চ সঙ্গে তাদের ব্যবহার করে খোলেন এবং স্টাফ, যাদের ব্লক করা হয়, কারণ আসলে আপনি জন্য অপেক্ষা করতে হবে খোলার জন্য যে ফাইল. কিন্তু Node.js এটি আপনাকে যে দেয় এবং মূলত গুগল এর V8 মধ্যে বেঁধে কারণ যা জাভাস্ক্রিপ্ট ইঞ্জিন ক্রোম প্রক্রিয়াকরণের সময়ে এত দ্রুত যে জাভাস্ক্রিপ্ট কারণ এটি এই V8 ইঞ্জিন আছে. তাই আমি ঐ যে এক মত শোনাচ্ছে জানতে WWDC ডেভেলপার সম্মেলন জিনিস তারা শুধু একটি গুচ্ছ নিক্ষেপ যেখানে প্রসেসরের জন্য অক্ষর সংখ্যা জিনিস এবং এই এত শান্ত বলে. কিন্তু এটা তারা করেনি যে শান্ত এই কারণ জাভাস্ক্রিপ্ট - অথবা হয়ত আপনি সাথে পরিচিত না হন তাহলে জাভাস্ক্রিপ্ট এখনো আমরা ছিল না, কারণ এটিতে বক্তৃতা - কিন্তু জাভাস্ক্রিপ্ট একটি ব্যাখ্যা হল ভাষা. এবং এই খুব গুরুত্বপূর্ণ পয়েন্ট. সুতরাং এটা আমাদের ওয়েব জন্য গুরুত্বপূর্ণ সার্ভার ঠিক আছে, দ্রুত হতে? এবং আমরা শুধু জাভাস্ক্রিপ্ট চলমান হয়েছে কিনা সঙ্গে ব্যাখ্যা ছিল যে কোড ঠিক কোনো পুরোনো দোভাষী এটি ধীর হতে পারে. এই থাকার থেকে তাই নোড বেনিফিট সুপার ফাস্ট V8 দোভাষী. তারা এটি নামকরণ এবং যদি আমি জানি না কারণ কপাল মধ্যে V8 চড় ব্যাপার হল, কিন্তু ঠিক আছে. তাই আমি কিছু উদাহরণ প্রস্তুত করেছি এই URL-এ. সেমিনারে পর, আমি ধরণের যাচ্ছি আপনি নোড সেট পেতে পারেন সে বিষয়ে কথা বলুন আপ, কিন্তু এখন জন্য, আমি শুধু ধরণের চান কিছু কোড উদাহরণ ভিতর দিয়ে হেটে যেতে. সুতরাং আপনি বরাবর অনুসরণ করতে চান, সব সোর্স কোড আছে উপলব্ধ. ঠিক আছে? তাই আমি এই URL ছেড়ে দেব একটু জন্য আপ. এবং তারপর আমি যাচ্ছি টার্মিনাল মধ্যে সুইচ. সবাই এই URL সঙ্গে ভাল? তাই আমি উপর সুইচ চলেছি এখানে আমার টার্মিনাল থেকে. তাই এখানে কোড যে আমি আজকের জন্য আছে. কেন না আমরা দিয়ে শুরু না simpler.js দায়ের? অন্যান্য জিনিস যে এই সব কোড লেখা হতে যাচ্ছে জাভাস্ক্রিপ্ট যা আপনি করতে পারেন বা সাথে পরিচিত নাও হতে পারে. আমি একটি দম্পতি জিনিস অনুমান যে অনেক জাভাস্ক্রিপ্ট কোডের ধরনের হয় বাক্য গঠন এবং কাঠামো অনুরূপ সি, হিসাবে আপনি ধরনের নিতে পারেন আপনি বরাবর যেতে. আমি অনেক লিখতে চেষ্টা করেছি এর একটি উপায় যে এই জন্য শুরু কোড এটা যাতে সি অনুরূপ একটু বেশি পাঠযোগ্য. কিন্তু আমরা অগ্রগতি হিসাবে, আমি থাকব অতিরিক্ত কিছু প্রদর্শক জাভাস্ক্রিপ্ট বৈশিষ্ট্য যে ধরনের শীতল. কিন্তু এর এই নমুনা প্রোগ্রাম তাকান. আমি সবকিছু সেখানে ছিন্ন এর অনুমান. আমি শুধু যে বাস্তব ঠিক করা যাচ্ছে না যে ঠিক আছে বা না দ্রুত যদি. আমি এই কাজ করতে হবে কি না জানি না. কিছুটা ভালো যে কি? আপনি var এবং স্টাফ দেখতে পাচ্ছেন? ঠিক আছে. তাই প্রথম লাইন জাভাস্ক্রিপ্ট ভালো হয় একটি পরিবর্তনশীল এর সংস্করণ ঘোষণা. তাই শুধু কি এই would হাইলাইট তাই এই শুধু ভালো হয় সি অনুরূপ আমাকে বলছে সূচী তিনটি সমান অথবা যে ভালো কিছু. তাই আমি টাইপ উল্লেখ করা হয়নি. জাভাস্ক্রিপ্ট ধরনের আছে, কিন্তু এটি খুবই পরিবর্তনশীল প্রকৃতির টাইপ করা, তাই এটি টাইপ কোন ধরনের প্রদান করা হয়নি. তাই এটি শুধু var আছে. যে পরিবর্তনশীল মত. ঠিক আছে? এবং আমি এই পরিবর্তনশীল HTTP-র আহ্বান করছি. এবং আমার ডান দিকে, আমি আছে আমি HTTP-র মধ্যে লাগাতে চান যে অভিব্যক্তি. এবং এই HTTP-র প্রয়োজন হয় না. তাই এই ধরনের অনুরূপ অন্তর্ভুক্ত করা হয়. এটা একটু বেশি ভালো শক্তিশালী চেয়ে বেশি যে অর্থে অন্তর্ভুক্ত মাত্র কপি এবং পেস্ট করুন হেডার হবে ফাংশন এগুলির নমুনা জন্য ফাইল বা টাইপ সংজ্ঞা সঙ্গে যাই হোক না কেন. কিন্তু প্রয়োজন আসলে যাচ্ছে আমাদের কোড পেতে. সুতরাং আপনি হিসাবে মনে করতে পারেন কিছু কোড ইম্পোর্ট. তাই কোথাও Node.js মডিউলে সিস্টেম বা যাই হোক না কেন, তারা সব এই আছে HTTP সার্ভার কোড তাই আমি ঠিক আছি আমার নিজের জন্য এটি আনয়ন এই প্রোগ্রামে ব্যক্তিগত ব্যবহারের. ঠিক আছে? আমি তখন আমি এই ফাংশন আছে আমি লিখিত করেছি. এবং আমি উল্লেখ করতে হয়নি বিজ্ঞপ্তি রিটার্ন টাইপ বা ধরণ আর্গুমেন্ট আবার. সুতরাং ধরনের আলগা টাইপ করা জ্ঞান তজ্জাতীয়. এটা লাগে যে দুটি আর্গুমেন্ট, অনুরোধ এবং প্রতিক্রিয়া. সুতরাং যে ধারণার ধরনের মত আছে আমরা ছিল যে ছবি থেকে পরিচিত পর্দায় কারণ আগে আমরা এই অনুরোধ পেতে যে আমরা ব্যবহারকারী থেকে আছে. এবং তারপর আমরা একটি প্রতিক্রিয়া আছে আমরা জিনিষ লিখতে পারেন. তাই এই প্রথম লাইন আছে 200 res.writeHead এবং তারপর এই কন্টেন্ট টাইপ লেখা প্লেইন. তাই আসুন একটু এই সরাইয়া টুকরা যাক. তাই আসুন শুধু res.write ফোকাস যাক একটু জন্য. তাই লেখার, মূলত, এবং মাথা লিখুন সাজানোর আউট লিখতে মাত্র উপায় প্রতিক্রিয়া জিনিস. ঠিক আছে? কেহ মনে সুতরাং, যদি মাথা লিখুন HTTP-র বক্তৃতা থেকে, আপনি না করবেন এ হেডার স্মরণ HTTP-র জিনিস উপরে? সুতরাং কেন আমি শুধু ডেমো না বাস্তব দ্রুত হেডার. যে সহায়ক হতে চান? অথবা উচিত আমরা শুধু বাছাই - ঠিক আছে. শিওর. তাই আপনার ব্রাউজার google.com যায় যখন অথবা যে ভালো কিছু, আসলে একটু বেশি আছে - এই একটি গোপন মত হল - একটু বেশি তথ্য মত আছে যে শুধু চেয়ে পাইপের মাধ্যমে আসে একটু অনুসন্ধান এবং সবকিছু. তাই আপনি যদি এই দেখানোর জন্য, আমি যাচ্ছি কার্ল নামে একটি প্রোগ্রাম ব্যবহার করতে. ঠিক আছে? তাই এই আপনি এ চালাতে পারেন এমন কিছু বিষয় আপনার ম্যাক OSX কমান্ড লাইন বা ইন যন্ত্র বা যাই হোক না কেন. এবং তাই আমি কার্ল যদি HTTP-google.com, আমি এইচটিএমএল দেখতে যাচ্ছি. এবং এই, সততা মধ্যে, ঠিক বাছাই করার জন্য আপনি বলে যে এইচটিএমএল আপনার ব্রাউজার না হলে www যাও পুনর্নির্দেশ স্বয়ংক্রিয়ভাবে সব ব্যবস্থা ফেরৎ. তাই এই শুধু এইচটিএমএল, কিন্তু আমি যাচ্ছি আমি ফ্ল্যাগ এই হাইফেন কার্ল যোগ করুন. ঠিক আছে? এবং এই প্রদর্শন করতে যাচ্ছে আমার হেডার. তাই এই এছাড়াও আসে যে তথ্য এর মাধ্যমে আমি এই প্রতিক্রিয়া পেতে হলে. ঠিক আছে? তাই শীর্ষে, আপনি এই দেখুন HTTP-301 স্থায়ীভাবে সরাতে. এবং এই ধরনের গুরুত্বপূর্ণ কারণ এই অবস্থা কোড বোঝায়. তাই এখানে 301, অবস্থা কোড হল মূলত শুধু একটি পূর্ণসংখ্যা যা যে ব্রাউজার বা কেবা এর বলে আপনি যে সাজা হলে, এই পড়া আপনি একটি ব্রাউজারের করছি এবং আপনি এই দেখছি, মূলত এখন আপনি তাকান যে এবং আপনি একটি 301 দেখুন, আপনি আমি জানি উপর ভিত্তি করে বিশেষ কিছু করতে 301, বা কিছু বিশেষ ঘটেছে 301 এর উপর ভিত্তি করে. সুতরাং এটি স্থায়ীভাবে স্থানান্তরিত বলল. এবং তারপর, মূলত, আমরা আছে কী মান জোড়া একটি গুচ্ছ. তাই আমরা অবস্থান পেতে www.google.com হয়. এবং তারপর ধরনের সব অন্যান্য উপাদান, কিন্তু মূলত, কি অবস্থান কথা নতুন অবস্থান হয় www.google.com এ. আপনি google.com এ যান, যদি তাই এখন, আপনি পাবেন সাজানোর পিট পিট এর ব্রাউজার ধরনের দেখুন আপনি পুনর্নির্দেশ তারপর একটি দ্বিতীয় এবং জন্য অধিকার ফিরে www.google.com করতে. তাই প্রতিক্রিয়া থাকতে পারে এই হেডার. আর জিনিষ কয়েক বাতলান. সুতরাং আসুন আমরা আসলে সফল বলা যাক একটি ওয়েব পাতা পরিদর্শন করে. তাই আমাকে ছাড়তে চাইছিল - একটি ভাল ওয়েব সাইট কি? আমি ভাল চিন্তা এ খারাপ আছি ঘটনাস্থলেই ওয়েবসাইটের. AUDIENCE: উইকিপিডিয়া. কেভিন Schmid: ঠিক আছে. এর উইকিপিডিয়া করুক না. তাই এখানে আমি সরিয়ে নেওয়া হয়েছে. ওহ অপেক্ষা করুন. আমি লেগেছে? হ্যাঁ, আমি না. ঠিক আছে. তাই আমি www কি পেয়েছিলাম. তাই আমি www করতে যাচ্ছি. আপনি দেখতে পারেন হিসাবে এবং, এখানে সব এইচটিএমএল এর ব্রাউজার প্রক্রিয়া হবে উইকিপিডিয়ার জন্য. কিন্তু আমি এখানে আপ স্ক্রলিং রাখতে হলে, আমি উপরে দেখতে পাবেন কি - বাহ, অনেক আছে উইকিপিডিয়ার এইচটিএমএল - কিন্তু কি আমি এখানে শীর্ষে দেখতে পারেন হয় যত বিরোধিতা এই 200 স্ট্যাটাস কোড আমি আগে দেখেছি যে 301. এবং এটা একটা চমৎকার হয়েছে নোটিশ পরবর্তী এটা বন্ধুত্বপূর্ণ ঠিক আছে. তাই এই ভাল অবস্থা কোড ভালো হয়. যে 200 নম্বর পরিচিত দেখাচ্ছে? হ্যাঁ, কারণ আমি simpler.js করেছিল, যখন আমি সেখানে একটি 200 লিখেছেন. সুতরাং যে মূলত বলুন এর বলছে ব্রাউজার বা কেবা পেতে চেষ্টা করছে তারা সফল ছিল এই. অথবা মত আমরা তজ্জাতীয় খুব সফল ছিল. এবং বিশেষ সিনট্যাক্স এই ধরণের আছে জাভাস্ক্রিপ্ট একটি প্রকাশক জন্য কন্টেন্ট টাইপ মত এই কি 'র ম্যাপ এবং টেক্সট প্লেইন মত এই মান. তাই আপনি যদি সাড়া তাকান যে আমরা , আগে ফিরে উইকিপিডিয়া থেকে পেয়েছিলাম - আমি স্ক্রল চেষ্টা যাচ্ছি একটু দ্রুত আপ - আপনি সার্ভারের মত এইসব কি আছে এবং এই মান এ্যাপাচি. সুতরাং আপনি কি ও মান পেয়েছেন. এবং যদি আপনি এই নির্দিষ্ট করতে পারেন ফিরে পাঠাতে কি নোড. তাই এই কিছু, আসলে ধরনের হয় উপায়, এবং কিছু উপায়ে এটা না সত্যিই, কিন্তু এটা একটু কম স্তর আছে আপনি হতে পারে পিএইচপি কোড এর চেয়ে পি জন্য লেখা সাত সেট, কারণ পিএইচপি এবং এ্যাপাচি ধরণের কিছু যত্ন আপনার জন্য এই জিনিস. পিএইচপি, আপনি ডিফল্ট মান অগ্রাহ্য করা যাবে আপনার নিজের হেডার লিখে আচরণ. কিন্তু এই উদ্দেশ্যে, আমরা পেতে আমাদের নিজস্ব হেডার আউট লিখতে. সুতরাং যে লাইন জানার জন্য সবাই, লেখার মাথা লাইন? ঠিক আছে. জট্টিল. আমি তখন কি আমি না আমি জবাবে শেষ হয় বিশ্বের হ্যালো বলে. ঠিক আছে. কিন্তু যে মাত্র একটি ফাংশন অনুরোধ হ্যান্ডলার বলা. তাই এখন আমি আসলে ধরনের যা করতে হবে এই ফাংশন সঙ্গে কিছু, ডান? তাই এখানে আমি কি এই আছে হয় হয় var সার্ভার সমান করে যা রেখা HTTP.create সার্ভার, এবং তারপর আমি অনুরোধ হ্যান্ডলার পাস. তাই এই নোড ধরনের একটি সার্ভার তৈরি করার উপায়. এবং আমি পার করছি নোটিশ অনুরোধ হ্যান্ডলার মধ্যে. তাই এই createServer বলছে আমি আপনাকে একটি আমার করতে চাই যে ফাংশন সার্ভার, এবং যখন যে সার্ভার পায় একটি প্রতিক্রিয়া, আমি আপনাকে এই ফোন করতে চাই হ্যান্ডলার ফাংশন অনুরোধ. ঠিক আছে? সুতরাং যে লাইন প্রায় কাছাকাছি এখুনি শেষ. সুতরাং var সার্ভার লাইন অধিকার সম্পন্ন করা হয় আপনি প্রায় কাছাকাছি যে কি পরে. আমি বলতে চাচ্ছি, এটা কিছু অভ্যন্তরীণ সেট আপ আছে আপনি করতে হবে যে জানতে রাষ্ট্র যে রিকোয়েস্ট হ্যান্ডলার ফাংশন কল, কিন্তু এটা সেখানে বসতে যাচ্ছে এবং না বলতে পাঠানো ব্যবহারকারী আছে আমার এখনো একটি অনুরোধ? ব্যবহারকারী এখনো আমার একটি অনুরোধ পাঠানো হয়েছে? সুতরাং এটা ব্লক করা হয় না. ঠিক আছে? তাই এই কাজ করবে এটি মূলত হয় এখন এই কোড একটি পয়েন্টার সঞ্চয় করে, তাহলে এই অনুরোধ হ্যান্ডলার ফাংশন, এবং যে কোড চালানো হবে যখন কারো একটি অনুরোধ করে তোলে. এবং তারপর আমরা server.listen না. 1337 বেশ নির্বিচারে আছে. আমি কোন বিশেষ কারণ আছে যে সংখ্যা অবচয় জন্য. এটা সম্পূর্ণই র্যান্ডম ছিল. কিন্তু যে শুধু পোর্ট নির্ধারণ করা হয়. তাই অধিকাংশ ওয়েব সার্ভার আপনি দেখতে পাবেন যে তারা যে ধরনের কারণ পোর্ট 80 ব্যবহার এর কনভেনশন মত. তাই আমি ভালো কিছু করতে যান, আমি জানি না, Wikipedia.org, এবং আমি কোলন 8 করান - ওয়াও ওহ, আপনি যে দেখতে পারে না. আমি দুঃখিত. কিন্তু আমি উইকিপিডিয়া না - আমি এটা এখানে লিখতে হবে শুধু তাই এটা ক্যামেরার উপর স্পষ্ট. কিন্তু আমি সঙ্গে একটি ব্রাউজারে এই নিতে হলে নির্দিষ্ট করে একটি কোলন 80, যান Wikipedia.org পোর্ট 80 এ. সুতরাং মার্কিন যুক্তরাষ্ট্র আছে কিভাবে মত আপনি অর্ণবপোত পাবেনা মত একাধিক পোর্ট ধরনের জিনিষ. সুতরাং এই বিশেষ যেতে মত এই সার্ভারের মধ্যে স্থাপন করুন. ঠিক আছে. তাই আমি শুধু 1337 বেছে নেওয়া হয়েছে. সংখ্যার একটি সম্পূর্ণ পরিসীমা আছে আপনি বাছাই করতে পারেন. এটা সম্পূর্ণই বিশেষ ছিল না. কিন্তু কি আমি এখন কি করতে যাচ্ছি আমি নোড চালানো যাচ্ছে না হয়. আমার আসলে লিখতে যাক যে দুয়েক আপনি এটি দেখতে পারেন, যাতে নিচে রেখা. আমি নোড করতে যাচ্ছি, এবং আমি আছি simpler.js চালানো যাচ্ছে. এবং আমরা কিভাবে পেতে সম্পর্কে কথা বলতে পারবেন নোড অল্প স্থাপন. কিন্তু এখন এটি শুধু সার্ভার চলমান এর. তাই এক জিনিস আমরা চেষ্টা করতে পারেন, যা না পারে উত্তেজনাপূর্ণ আসলে আমরা যা করতে পারেন যে করা কার্ল এটি অ্যাক্সেস করতে চেষ্টা করুন. তাই আমি কার্ল করতে পারেন, এবং আমার মেশিনে স্থানীয় হোস্ট. এছাড়াও আপনি এই লেখা দেখতে পাবেন কখনও কখনও এই মত. স্থানীয় হোস্ট এবং 127.0.0.1 ধরনের হয় আপনার হোম কম্পিউটার চাই. সুতরাং কথা বলা মত আপনার নিজের কম্পিউটার. ঠিক আছে. এবং তারপর আমি 1337 বলতে পারেন. তাই আমি কোড এই লাইন চালানো, এটি বিশ্বের হ্যালো বলছেন. এবং আমি যে উপাদান দেখতে চেয়েছিলেন যে যদি ছিল কন্টেন্ট টাইপ লেখা প্লেইন বা যাই হোক না কেন, আমি এমনকি এই এখানে লাগাতে পারে. এবং এটা ঠিক আছে বলে নোটিশ. এবং আমি লেখা প্লেইন আছে. এবং তারপর এই অন্য ধরনের সব আছে নোড মধ্যে যোগ হবে যে উপাদান সেখানে আমার জন্য. যে মহা গুরুত্বপূর্ণ নয়. আমি বলতে চাচ্ছি, প্রযুক্তিগত কিছু আছে ধরনের যে এ দিক শুধু দেখানোর জন্য এর সম্পর্কে কথা বলার জন্য শান্ত, কিন্তু আপনি, আমি ক্ষমতা আছে চারপাশের এই পরিবর্তন. তাই আমি শুধু একটি গুচ্ছ যোগ করতে পারেন যে ভালো জিনিস. এবং তারপর এখন, আমি অল্পক্ষণের যদি আমার আউটপুট, এটা যে হতে হবে. সুতরাং এই হেডার কিছু জিনিস বলতে চাচ্ছি সেই মতো ব্রাউজার এবং জিনিষ. এবং হেডার মূলত একটি ব্রাউজার বলতে পারেন কিভাবে কিছু সাড়া. আপনি কি কখনো, আগে কুকি শুনিনি করেছি অথবা আপনি কি কখনও বিরক্ত ছিলাম যদি কুকিজ সেট করা একটি ওয়েব পেজ দ্বারা, বা কুকি ব্লক বা চালু যে ভালো কিছু. আপনি আসলে কুকিজ সেট করতে পারেন এই হেডার মধ্যে. সুতরাং তারা কিভাবে একটি ব্রাউজার বলুন কিছু ক্ষেত্রে আচরণ. ঠিক আছে. সুতরাং যে simpler.js ছিল. কেহ কোন প্রশ্ন আছে যে সোর্স কোড ফাইলের উপর? ঠিক আছে. কুল. সুতরাং এর থেকে আর সরিয়ে দেওয়া এবং simple.js তাকান. তাই এই প্রায় কাছাকাছি হয় একই প্রোগ্রাম. আমি শুধু একটু ভিন্নভাবে এটি লিখেছেন আমি হাইলাইট এর সাজাতে চেয়েছিলেন, কারণ জাভাস্ক্রিপ্ট এর কিছু বৈশিষ্ট্য. তাই লক্ষ্য করা যে রিকোয়েস্ট হ্যান্ডলার ফাংশন সম্পূর্ণভাবে বিলুপ্ত হয়েছে. হাঁ ওহ, আপনি একটি প্রশ্ন আছে? AUDIENCE: হাঁ, আর্গুমেন্ট যে প্রেরণ করা হয় ফাংশন, তারা কি? কেভিন Schmid: সুতরাং যারা জাভাস্ক্রিপ্ট বস্তু. Node.js ডকুমেন্টেশন, এটা মূলত পদ্ধতি কি বলছেন তাদের উপর উপলব্ধ. আমরা শুধু এক্সেস আছে এরকম লেখার মাথা এবং শেষে বলা এই পদ্ধতি এবং যে ভালো জিনিস. কিন্তু আভা আছে আরো পদ্ধতি. এবং উদাহরণস্বরূপ, তাদের মধ্যে একজন ভালো Rec নেভিগেশন বিশেষ করে, আপনি কি করতে পারেন rec.method মত কিছু যা হবে এটি একটি HTTP-র পেতে আছে বা কি না তা আপনাকে বলতে HTTP-র পোস্টে অনুরোধ এবং যে ভালো জিনিস. তাই বিভিন্ন সব ধরণের আছে বৈশিষ্ট্য, কিন্তু তারা উভয় করছি জাভাস্ক্রিপ্ট অবজেক্ট, এবং তারা ঠিক আছে সংযুক্ত তাদের ফাংশন আপনি যে জিনিষ লিখতে পারেন. ঠিক আছে? সুতরাং যে রিকোয়েস্ট হ্যান্ডলার বিজ্ঞপ্তি একেবারে সর্বস্বান্ত হয়. কিন্তু আমি অনুরোধ ছিল যে কোড হ্যান্ডলার আছে এখনও. আমি এখনও এই res.writeHead আছে এবং আমি এখনও এই res.end আছে. এবং এই ক্ষেত্রে একটি উদাহরণ কি জাভাস্ক্রিপ্ট একটি এই ধারণা বেনামী ফাংশন. এবং বেনামী একটা জুতসই নাম ভালো হয় তার জন্য এটা আক্ষরিক আছে না, কারণ একটি নাম আছে. কোন ফাংশন অনুরোধ আছে সেখানে হ্যান্ডলার. কোন নাম আছে, কিন্তু এটি এখনও একটি আর্গুমেন্ট গ্রহণ করা হয়. তাই আমি এখনও Rec এবং মাঝামাঝি পেয়েছিলাম. এবং আমি এখনও কোড আছে. এই পুরোপুরি সূক্ষ্ম জাভাস্ক্রিপ্ট কোড. তাই আমি ছাড়া একটি ফাংশন ডিক্লেয়ার করতে পারেন স্পষ্টভাবে এটি একটি নাম দেবার. এটা প্রথমে একটু বিভ্রান্তিকর. কিছু মত দরকারী জিনিস আছে আপনার সাথে কি করতে পারেন যে এই বেনামী ফাংশন. কেহ এই প্রথম কোন প্রশ্ন আছে, বা এটা ঠিক, জন্য, এখন ঠিক আছে ধরণের শুধু গ্রহণ করে তা একই জিনিস করে হবে? হাঁ? AUDIENCE: ফাংশন প্রথম জাভাস্ক্রিপ্ট মধ্যে বর্গ? কেভিন Schmid: তারা প্রথম হয় জাভাস্ক্রিপ্ট মধ্যে বর্গ. এবং শুধু জানি যে এই ধারণা মত একটি বেনামী ফাংশন কথা প্রসঙ্গে এই জাভাস্ক্রিপ্ট প্রযোজ্য যে আপনি জন্য আপনার চূড়ান্ত প্রকল্পে লিখতে পারে খুব ওয়েব ব্রাউজার. সুতরাং উদাহরণস্বরূপ, জাভাস্ক্রিপ্ট মধ্যে মধ্যে আপনার ব্রাউজার, এটা কিছুটা এছাড়াও ইভেন্ট এর অর্থে চালিত যে কি আপনি পাবেন ব্যবহারকারী এই ক্লিক করার সময় হয় আছে বাটন, আমি আপনাকে এই কোড রান করতে চান. সুতরাং এর ধারণা একই ধরনের ক্লায়েন্ট প্রান্তের একটি মাউস ক্লিক অথবা তারা যখন কিছু ইমেজ উপরে মাউস আপনার ওয়েব পৃষ্ঠা, এই কোড রান. যে সার্ভার থেকে আবেদন করতে পারেন. সুতরাং যে ধরনের উত্তেজনাপূর্ণ মত জাভাস্ক্রিপ্ট সত্যিই হয় কারণ উপযুক্ত বা কিছু লোক এটি একটি মনে করি এই ধরনের জন্য উপযুক্ত ভাষা ইভেন্ট ড্রাইভার সার্ভার আপনার আছে, কারণ এই বেনামী ফাংশন. আপনি পুরো ধারণা আছে এই অ্যাসিঙ্ক্রোনাস কোড. ঠিক আছে. কেহ কোন প্রশ্ন থাকে? ঠিক আছে. সুতরাং যে simple.js ছিল. সুতরাং আসুন আরও একটি তাকান অথবা একটি দম্পতি আরো. তাই এই sleep.js হয়. তাই সঙ্গে পরিচিত কেহ হয় সি ফাংশন ঘুম? তার আগে বক্তৃতা হয়ত এক থেকে অথবা যে ভালো কিছু? তাই মূলত আপনি আমি মনে মধ্যে পাস করতে পারেন একটি সেকেন্ডের সংখ্যা অথবা আপনি ইউ ব্যবহার করছেন মিলিসেকেন্ড একটি নম্বর ঘুম বা nanoseconds. এবং মূলত প্রোগ্রাম শুধু বন্ধ হবে সময় যে পরিমাণ জন্য চলমান. রাইট? এবং তারপর এটি ঘটনাচক্রে জেগে ওঠা এবং হবে তারপর এটি শুধু চলমান চালিয়ে যাব প্রোগ্রাম. তাই এই সার্ভার ধরণের দেয় ঘুমের ছাপ. সুতরাং আমরা একই আছে বিজ্ঞপ্তি হেডার হিসাবে সঙ্গে 200 res.writeHead আগে, কিন্তু তারপর আমরা এই আহ্বান করছি ফাংশন সেট সময়সীমার বলা. সেট সময়সীমার এছাড়াও পাওয়া যায় আপনার ওয়েব ব্রাউজার গুগল ক্রোম বা সাফারি বা যাই হোক না কেন. এবং মূলত তা এখানে করছেন কি এটি একটি ফাংশন মধ্যে গ্রহণ এর হয়. নোটিশ, আবার, এটি একটি এর বেনামী ফাংশন. আমরা কারণ সুতরাং যে ধরনের শীতল একটি মধ্যে একটি বেনামী ফাংশন ব্যবহার বেনামী ফাংশন যা একটু অদ্ভুত হতে পারে. কিন্তু, যা যে ফাংশন গ্রহণ এর এই ভাবে ও - মূলত বলছে কাজ আমি চাই, 5,000 মিলিসেকেন্ড হয় আপনি যে ফাংশন চালানো যা শুধু হেই প্রতিক্রিয়া শেষ হয় এবং লিখেছেন. তাই এই মত এর ছাপ দেয় ঘুমের, কিন্তু উপায় আসলে এই কাজ করে আমরা মাধ্যমে রান করব হয় খুব তাড়াতাড়ি এই লাইন. আমরা শুধু কিছু লেখার. এবং তারপর আমরা মাধ্যমে রান করব খুব তাড়াতাড়ি এই লাইন. তাই আসলে আমরা চলুন না পাঁচ যাও অপেক্ষা করতে. আমরা শুধু চালানো চলুন সঙ্গে সঙ্গে এই অবস্থান. এবং তারপর আবার,, এই সামান্য আছে এখন এই জিনিস আছে যে ঘটনা লুপ মূলত ঠিক যে নিবন্ধনের ক্রমাগত একটি বৃত্ত কাছাকাছি যাওয়া এবং একটি একক মধ্যে ঘড়ি এ খুঁজছেন থ্রেড ও বলছে, পাঁচ সেকেন্ডের আছে এখনো পাস? এবং তারপর এটি সূচিত যখন যে দ্বিতীয় হাতের পাঁচ যাও বা মত সরানো হয়েছে যাই হোক না কেন, তারপর, জেগে উঠছে এবং বলেছেন ওহ, আমি কি করতে আছে? ওহ আমি এই কোড রান করতে হবে. এবং তারপর এটি যাচ্ছে হেই res.end চালানো. তাই আবার, আমরা এখানে অপেক্ষা করছে না করছি. তাই এটা না যে এর ভিতরে এই কোড এই ফাংশন পাঁচটি নিতে যাচ্ছে চালানো যাও. এই কোড অনেক সুন্দর চালানো হবে যাও তাত্ক্ষণিকভাবে, অন্তত আপেক্ষিক আমরা কথা বলা হয়েছে যে পাঁচটি যাও আমার আগে আগে. তাই ঠিক, কর্ম এই প্রদর্শন আমি Node.sleep.js করতে পারেন. আর কিছু আমি জড়ান কি? সম্ভবত. দুঃখিত. আসুন আমরা এই সমাধানের জন্য কি করতে পারেন দেখতে দিন. ঠিক আছে. তাই স্পষ্টভাবে কলব্যাক ব্যবহার আমি নিশ্চয়ই মজা করছি. ঠিক আছে. শুধু এক সেকেন্ড. ঠিক আছে. আমি কি এটা জানেন. সুতরাং সমস্যা যে আমার অন্যান্য ট্যাবে এখানে, আমি ইতিমধ্যে নেভিগেশন নোড চলমান ছিল একই ঠিকানা, 1337. আমরা যদি এই, ছুড়ে ফেলে যাতে ত্রুটি এটি এ বাস্তব ঘনিষ্ঠভাবে, ঠিকানা হয় , EADDRINUSE ব্যবহার. তাই আমি আগে থেকেই এখানে 1337 ব্যবহার করেন. আমি এখন তাহলে এই বন্ধ, এবং যদি তাই হয় , আশা করছি, সবকিছু এই চালানোর চেষ্টা জরিমানা করা হবে. ঠিক আছে. সুতরাং আপনি শুধুমাত্র এক জিনিস সাজানোর থাকতে পারে এর একবারে একটি পোর্ট নেভিগেশন শোনা. আরেকটি সমাধান আমার জন্য হত ঠিক যে প্রোগ্রামটি সম্পাদনা করা এটা 1338 বা কিছু মত হবে সেই মতো. কিন্তু এখন ঘুম চলমান. সুতরাং আসুন আসলে মধ্যে এটি চেষ্টা করা যাক ব্রাউজার এই সময় এটা কারণ একটি দেখতে একটু unexciting এটি টার্মিনালে. তাই আমি ঠিক যে যেতে চলেছি 127 ঠিকানা আবার 1337 এ. এবং যদি আপনি এটি দেখতে পারেন - আমি সম্ভব হলে জানি না - কিন্তু আমার ব্রাউজারের একটি খুব খুব দীর্ঘ গ্রহণ বা পাঁচ সেকেন্ডের মত লোড সময়. এবং তারপর যে পরে, এটা অবশেষে জবাবে শেষ. এবং যদি আপনি এটি দেখতে পারে না, কারণ যে জিনিসটি আমি যদি একটু ধরে সরানো, কিন্তু হয় এই একটু ছোট, আপনি এটা হেই বলে দেখতে পারেন. তাই আমি হেই পেয়েছিলাম, কিন্তু পাঁচ যাও পরে. এবং এটা দেখতে একটু ক্লিনার হতে পারে এখানে টার্মিনালে এটা, তাই আমি আছি একটি করতে যাচ্ছে - এর এখানে করতে দেওয়া - এর যে ঠিকানা কার্ল করতে দেওয়া আবার 1337 দিয়ে. আর আমি শুধু ধরনের বসতে হবে এখানে পাঁচ সেকেন্ডের জন্য. কিন্তু লক্ষ্য করা যে সার্ভার নতুন প্রত্যুত্তর গ্রহণ করতে পারে. সুতরাং হেই ছাপে. এবং মূলত, এই নমুনা কি আমি এই অন্য ট্যাবে কিছু করতে পারি - তাই আসুন আমি অন্য ট্যাবে এটা করতে বলা যাক, আমি কার্ল ও একই কাজ করা যাচ্ছে না ব্যাপার হল আবার. এবং আমি এই মরে চেষ্টা যাচ্ছি একই সময় ছেলেরা বন্ধ. তাই আমি এই কাজ করতে যাচ্ছি, এবং আমি আছি এখানে বেশী গোড়া যাচ্ছে এবং আমি আছি আবার এটা করতে যাচ্ছে. আর এর এটা করা যাক, যাতে আপনি দুইটাই দেখতে পারেন. হেই ছাপা যে এক এবং এক যে মুদ্রিত হেই সব পথ এ - এর আবার যে পরীক্ষা না দেওয়া. বাস্তবিক, আমি কি এই ব্যবহার করতে দিতে এটা ঠিক আছে যদি রত. তাই আমি একটি শেল জিনিস ব্যবহার করা যাচ্ছে না যে আমার মূলত দুই কপি চালাতে সক্ষম সমান্তরাল মধ্যে এই প্রোগ্রাম. সুতরাং প্রথম প্রোগ্রাম চালানো এবং করব সমান্তরাল দ্বিতীয় প্রোগ্রাম. আমি Enter টিপুন যদি তাই এখন, এটা যাচ্ছে যে অনুরোধের প্রায় কাছাকাছি করা তাত্ক্ষণিকভাবে একই সময়ে. তাই আসুন এই একটি শট দিতে যাক. তাই এখন এটি দুটি প্রসেস বলেছেন বিজ্ঞপ্তি. এবং যদি আপনি জানতে আগ্রহী হন তাহলে, যে 27.000 নম্বর মূলত প্রসেস ID হয়. এবং তারপর তারা ছাপা, বিজ্ঞপ্তি হেই একই সময়ে. এটা আমরা পাঁচটি অপেক্ষা করতে হয়েছিল পছন্দ না হয় এর পর এক এবং তারপর সেকেন্ডে, পাঁচ যাও পরে দ্বিতীয় পেতে. সুতরাং যে ধরনের, কিছু উপায়ে, এটা হচ্ছে সত্যিই প্রমাণ, কিন্তু এটা না এটা ঠিক না যে স্বজ্ঞাত প্রমাণ পাঁচ যাও অপেক্ষা এবং অবরুদ্ধ মত সম্পূর্ণ থ্রেড. কুল ঠিক আছে. সুতরাং হারুনের আগে একটি প্রশ্ন জিজ্ঞাসা করা যে ছিল, ভাল কি আমরা কিছু করতে পারি, যদি - হাঁ? AUDIENCE: অপেক্ষা করুন. কিভাবে যে থেকে আলাদা printf, বাফার, যদিও? এটি স্বয়ংক্রিয়ভাবে যে কি না? কেন আমরা এটা সম্পর্কে চিন্তা করতে হবে না? কেভিন Schmid: ওহ, আপনি পারা এক যে আরো সময় বলে? AUDIENCE: printf, বাফার চাই না সঠিক একই জিনিস করে? কেভিন Schmid: printf, বাফার? AUDIENCE: হ্যাঁ. ঠিক আছে. তারা ছিল ক্যুইজ একটিতে ছিল না কিভাবে আপনি যদি ডান printf বিষয়ে কথা কিছু এবং তারপর এটি এক বিরতি আছে দ্বিতীয়, এবং তারপর আপনি এটি লুপ দশ আছে বার, এটা দশ সেকেন্ড অপেক্ষা করুন এবং করব তারপর একসাথে সবকিছু printf? কেভিন Schmid: ঠিক আছে, ওহ. AUDIENCE: এটি একই কাজ করা হয় ব্যাপার হল তারপর এই ক্ষেত্রে? কেভিন Schmid: তাই প্রশ্ন ছিল মূলত সাবেক ক্যুইজ একটিতে বা কিছু, একটা প্রশ্ন ছিল যে মূলত আপনি মুদ্রণ চ 10 বলে যদি তারপর একটা সময়ে জিনিষ এবং মত slept যারা মুদ্রণ প্রক্রিয়া, কোনো কারণে শেষে, এটি হবে শুধু পর্দায় অল আউট যারা ডাম্প. তাই ভিন্ন দুই ধরনের আছে এখানে ধারণা. তাই আমি এক জিনিস যে, এই হল অনুমান কেস, আমরা ভিন্ন দুটি সঙ্গে লেনদেন করছেন ধরণের মানুষ সার্ভার জিজ্ঞাসা একই সময়ে জিনিসের জন্য. এবং যে printf ধরনের কারণ সেই মতো অপেক্ষা করুন এবং এটি অল আউট ডাম্প একযোগে যাও আরো সম্পর্কিত হয় এর কিভাবে printf ধরনের - তাই উপায় printf, আসলে বাস্তবায়িত এটা মূলত হয়েছে থাকে লিখতে অপারেটিং সিস্টেমের সাথে কথা বলুন কনসোলে যে উপাদান. সুতরাং যে সব কাজ করতে চান না আপনি printf বলতে যখন স্টাফ অবিলম্বে কিছু স্ট্রিং যে পারে, কারণ এটা করতে হয়েছে থাকে দামী পেতে প্রতি সময় তা করতে. যদি আপনি না সুতরাং, হেই আপনার প্রোগ্রাম printf আসলে যে প্রিন্ট নাও হতে পারে অবিলম্বে কনসোলে. এটা ঠিক আছে, আমি এটা লিখেছে, বলতে পারে. আপনি দিতে জন্য এবং তারপর ধরনের অপেক্ষা এটি আসলে আগে একটু বেশি কনসোল থেকে এটি লেখা. সুতরাং যে ক্ষেত্রে ছিল যে কারণে - এবং এটা কোন ধরনের সম্পর্কহীন এর ঘুম - ঘুম ধরণের ঠিক যে হয় প্রকট সেখানে ইনজেকশনের এটা লিখতে না যে এটা সিঙ্ক্রোনাস. কিন্তু যে জন্য কারণ ঠিক হয় কর্মক্ষমতা আপনি করতে হবে না, যাতে অনেক পরিচিতি করা অপারেটিং সিস্টেম. কিন্তু এখানে, আমরা কি সত্যিই কাজ করতে চেষ্টা করছেন এই ঘুম জিনিস দিয়ে শুধু শো যে আমরা গিয়ে দুই জনের আছে এই ওয়েবসাইট, এটা করা যাচ্ছে না তাদের এটা বলতে যাচ্ছে যেখানে একটি লাইনে আমি আছি যখন তখন আপনাকে সাহায্য, এবং আছে সম্পূর্ণই এই পর আপনি সাহায্য সমাপ্ত পাঁচ যাও, তারপর আমি যাচ্ছি পরবর্তী ব্যক্তির সম্মুখের দিকে অগ্রসর. সুতরাং প্রথম ব্যক্তির অনুরোধে না ইভেন্ট যে লুপ পর্যন্ত গিঁট যে অর্থে তোলে যদি. কিন্তু এখানে আসলে একটি উদাহরণ গিঁট হবে যে কিছু ইভেন্ট লুপ আপ. তাই এখানে একটি ভয়ঙ্কর ফাংশন এর n তম Fibonacci গনা. এটা আক্ষরিক আপনি পারেন খারাপ উপায় n তম Fibonacci সংখ্যা গণনা. এবং এই মাত্র স্বীকার আসলে এই, থেকে এসেছিলেন যেখানে আসলে আছে - আমি বলতে চাচ্ছি, আপনি সেটা খুঁজে যেতে চেষ্টা করতে পারেন - কিন্তু একটি খুব লম্বা ব্লগের মত আছে কারো লিখেছিলেন যে পোষ্ট. এটা যারা Reddit জিনিস এক মত. কিন্তু কারো Node.js সমালোচনা, এবং তারা একটি উদাহরণ হিসাবে এই ব্যবহার. তাই আমি ধরনের মাত্র দুটি দেখাতে চেয়েছিলেন বিভিন্ন দৃষ্টিকোণ শুধু পেতে ধারণার একটি সাধারণ জ্ঞান এই দুটি জিনিসের পিছনে. কিন্তু এই মাত্র একটি ভয়ঙ্কর হিসেবে নির্বাচিত হবে ভয়ঙ্করভাবে অদক্ষ computationally গনা নিবিড় ভাবে n তম Fibonacci সংখ্যা. তাই শুধু একটি সাইড নোট হিসাবে, কেন হয় এটা ভয়ঙ্কর এক ভাবে পছন্দ? হাঁ? AUDIENCE: আপনি শুরু বলুন 1,000 সঙ্গে আউট. 999 এবং 998 এর মধ্যে 1,000 splits. এই প্রত্যেকটি দুটি জিনিস মধ্যে splits. এই প্রত্যেকটি দুটি জিনিস মধ্যে splits. কেভিন Schmid: রাইট. AUDIENCE: সমস্ত উপায় নিচে. কেভিন Schmid: যথাযথভাবে. তাই আপনি যদি শুধু ক্যামেরার জন্য পুনরাবৃত্তি আমি 1,000 বা কিছু মত নেভিগেশন গুল কল যে মত, এটা সম্ভবত কম নয় অথবা এক সমান তাই আমি চলেছি এই অন্য ক্ষেত্রে যান, এবং তারপর আমি যাচ্ছি 999 গুল প্লাস 998 গুল কল. এবং তারপর প্রায় কাছাকাছি সব যে এর 999 টি গুল যে কাজ ধরনের এই পর্যায়ে. আপনি নিচে যান, এটি আরও বেশি অপ্রয়োজনীয় এর যে বেশী, কিন্তু যদি আপনি শুধু কম্পিউটিং গুল 998 পায় মনে আমাদের বেশ ঘনিষ্ঠ 999 গুল করতে. সুতরাং আমরা সত্যিই একটু বেশি হওয়া উচিত আমরা ধরনের পুনরায় ব্যবহার সম্পর্কে চতুর এই, কিন্তু আমরা পুনঃব্যবহার করছি না এ সব এই জিনিস. তাই আপনি যদি এই রাক্ষুসে কল্পনা করতে পারেন শুধু ভয়ঙ্কর যে পেল্লায় ট্রি. কিন্তু যাই হোক, ঠিক আছে. সুতরাং যে গুল ছিল. এটা ঠিক চালানোর সময় লাগে. হাঁ? AUDIENCE: [শ্রবণাতীত]. কেভিন Schmid: ওহ, আপনি পারা প্রশ্নের পুনরাবৃত্তি? AUDIENCE: [শ্রবণাতীত]. কেভিন Schmid: ওহ তাই এই মাত্র কোড হল যে ধরণের উপর হতে যাচ্ছে সার্ভার সাইড. তাই এই পাওয়া যাচ্ছে না ব্রাউজার বা কিছু মধ্যে. এটা কি আমরা আছে হয় মূলত যে যখন এখানে ব্যবহারকারীকে অনেক সুন্দর করে তোলে আবার তাদের অনুরোধ, যখন আমরা ধরণের একটি অনুরোধ করতে, আমরা কল চলুন সার্ভারের দিকে এই ফাংশন. এবং তারপর আমরা ফলে ফিরে পাবেন যে ফাংশন কলিং থেকে. এবং তারপর আমরা শুধু মুদ্রণ করব ব্যবহারকারী যাও এটি. তাই ব্যবহারকারী সত্যিই কারবার করে না খুব বেশী এই ফাংশন দিয়ে. প্রশ্ন যে লেগেছে? যে জানার জন্য? ঠিক আছে. কুল. তাই আবার, আমরা এই পুরো res.writeHead করবেন আমরা প্রিন্ট আউট যেখানে জিনিস হেডার. এবং তারপর আমি করে সাড়া শেষ ম্যাজিক নম্বর গুল 45 হয়. তাই আসুন শুধু এই সার্ভার চালানো যাক. তাই আমি একটি নোড fib.js. করতে যাচ্ছি তাই এখন আমার গুল সার্ভার চালানো সম্ভব. এবং তারপর এখানে, আমি যাচ্ছি এই এক কি. ঠিক আছে? তাই আমি ঠিক, কার্ল বলতে যাচ্ছি. সুতরাং এটা একটু সময় নিতে যাচ্ছে কিন্তু এর আশা শীঘ্রই এটি সমাপ্ত হবে এবং হবে এটা যে 45th প্রিন্ট আউট হবে নম্বর Fibonacci. AUDIENCE: [শ্রবণাতীত]. কেভিন Schmid: এটা উচিত চমত্কার শীঘ্রই করাতে. সুতরাং পাঁচ থেকে ছয় সেকেন্ডের নিতে হবে. আমি যে শুধু V8 হচ্ছে সুপার জানি না দ্রুত, কিন্তু যাই হোক, এই একটি হল ইচ্ছাপূর্বক খুব ছোট উদাহরন এবং একটি অ তুচ্ছ এর অসুন্দর গুনতি. তাই একটা সময় পরে, এটা এই পান না. কিন্তু এখন, আমি কি করতে হলে যে একই ধরনের আমি না যেখানে আগে হিসাবে পরীক্ষা একই সময়ে দুটি অনুরোধ? তাই এখানে আমি একটি কার্ল যাচ্ছি যে ঠিকানা, এবং আমি যাচ্ছি অন্য কার্ল করবেন. এবং আমরা এই জন্য যখন, মনে রাখবেন আমরা মূলত এটি ছিল যখন, সার্ভার ঘুম পাঁচ যাও পরে, তারা প্রায় কাছাকাছি অনেক উভয় অধিকার ফিরে আসেন একই সময় কাছাকাছি. সুতরাং এটি বিশেষ করে আবদ্ধ হয় নি. কিন্তু এর এটি এখন চেষ্টা করুন. ঠিক আছে, তাই আমরা আমাদের দুটি প্রসেস পেয়েছিলাম. সেই প্রক্রিয়া ID-র হয় মনে রাখুন. এই সামান্য হতে যাচ্ছে আমরা ফাঁকি যখন বিশ্রী. তাই আসুন শুধু এখানে থাকতে দেওয়া এবং অপেক্ষা করুন. সুতরাং তাদের মধ্যে একজন আসা উচিত ফিরে মত পরে - ঠিক আছে, তাই এক ফিরে আসেন. কিন্তু তারপর কেন দ্বিতীয় না এক এখনও ফিরে আসা? হাঁ? AUDIENCE: সার্ভার কিছুই করতে পারবো না এটা যে বড় সংখ্যা কম্পিউটিং এর সময়. কেভিন Schmid: রাইট. তাই প্রতিক্রিয়া ছিল ঠিক যে সার্ভার সত্যিই কিছুই করতে পারবো না, যখন এটা যে Fibonacci সংখ্যা কম্পিউটিং এর. তাই এখন আমি শুধু আমার দুটি জিনিস আছে. কিন্তু আমি ঠিক কোড সম্পর্কে চিন্তা অনুমান একটু বেশি, কিভাবে এটি কাজ করে এবং সবকিছু. সুতরাং এখানে এই ফাংশন কোড যে আমি যখন এটি চালানোর জন্য এই সার্ভার বলা করেছি একটি নতুন অন্তর্মুখী অনুরোধ পায়. সুতরাং শুধু এই মাধ্যমে চালানো যাচ্ছে সমগ্র কোড, এবং তারপর এটি যেতে যাচ্ছে ইভেন্ট লুপ ব্যাক এবং তারপর অবিরত নতুন ইভেন্ট জন্য চেক. তাই মূলত আমরা ঘটছে কি সার্ভার হয় নতুন জিনিসের জন্য শোনা. প্রথম ব্যক্তি 45 কি জন্য অনুরোধ করবে. আমরা এটা গনা এই কোড রান. এই কোড নেয় প্রায় পাঁচ থেকে চালানোর ছয় সেকেন্ড. তারপর আমরা ইভেন্ট লুপ ফিরে যান এবং নতুন অনুরোধের জন্য চেক. তাই এই আপনি যদি কিভাবে একটি উদাহরণ তথাকথিত Compute জিনিস রয়েছে যা আছে আবদ্ধ, বা গণনীয় অনেক ব্যবহার, না পাওয়ার, কিন্তু মত নিবিড় computationally - আমি এই সম্পর্কে বলার এক জিনিস অনুমান এই ফাংশন, সর্বাঙ্গে করছে যে অধিকাংশ অংশ জন্য, সুন্দর দরকারী কাজ অধিকার. সম্পূর্ণ সময় যে যে কলব্যাক ফাংশন চলমান ছিল, এটা প্রশংসনীয় ছিল অনেক তার সময় অধিকাংশ খরচ মাত্র কম্পিউটিং যে n তম Fibonacci সংখ্যা. কিন্তু আমরা কেবলমাত্র একটি থ্রেড ছিল মোকাবেলা. এ্যাপাচি মডেলের মধ্যে, যখন দুটি মানুষ , 45 গুল পেতে অনুরোধ করেছেন আমরা দুটি ভিন্ন থ্রেড ছিল হবে. এবং তারপর অপারেটিং সিস্টেম এর কাজ ব্যবহারকারীর স্তর হয়েছে, অথবা হবে থ্রেড পরিচালনা করে যে কোড, করেছি হবে প্রথম যে আপ যেভাবেই দেখুন হয়েছে CPU-র, অথবা আপনি একাধিক CPU-ছিল, এমনকি যদি CPU-জুড়ে সমানভাবে বিতরণ তারা ফিনিস উভয় ছিল তাই প্রায় একই সময়ে. তাই শুধু আমরা এর বাছাই করতে পারেন কিভাবে আপনি প্রদর্শন করুন - এবং এই একটি মোট নিখুঁত নয় সমাধান, কিন্তু ধরণের কিভাবে আমরা করতে পারেন করতে একটি ফিরে এখানে আসা এবং কাজ একটু একটু ভাল. তাই আমি এখানে থাকতে নামক একটি প্রোগ্রাম গুল সি এবং এই মূলত ব্যবহার বলা নোড এর মডিউল অন্য একটি চাইল্ড প্রসেস মডিউল. তাই আমি অন্তর্ভুক্ত করেছেন যে উপরের ধরনের এ হল আমি আধা কেজি করে এর মত সন্তানের process.h বা কিছু. এখন আমি এই CP পরিবর্তনশীল অ্যাক্সেস আছে যা সব আমার কার্যকারিতা রয়েছে. তাই এখন আমি এই প্রতিক্রিয়ায় কি করছি হ্যান্ডলার আমি এই প্রোগ্রাম চালানো করছি হয় ডট গুল 45 কাট. তাই কি আমি কাজ করেছি - এবং আমি ঠিক যাচ্ছি একটি জন্য এই প্রোগ্রাম বাইরে পইঠা অল্প - আমি একটি সি প্রোগ্রাম লিখিত করেছি যে মূলত নির্ণয় n তম Fibonacci সংখ্যা. তাই এখানে আমি লিখিত করেছি মাত্র একটি প্রোগ্রাম সি যে এই গণনা. আমি এটা কম্পাইল করতে পারেন, এবং আমি চালাতে পারেন এটি কমান্ড লাইনে. এবং এটা গনা যাচ্ছে 45th Fibonacci সংখ্যা. সুতরাং এটা ঠিক লাগে বিজ্ঞপ্তি দীর্ঘ হিসাবে প্রায় কাছাকাছি. আমি সম্ভবত ড্যাশ 03 ব্যবহৃত হতে পারে এটা বা যে ভালো কিছু নিখুত, কিন্তু আমি নিয়মিত ভালো করেছেন কম্পাইলার সেটিংস. এবং এটা এটি ছাপে. কিন্তু এখন, আমি ধরনের কি করছেন? দুঃখিত ওহ, ভুল ফাইল. তাই আমি সঙ্গে একই উপাদান না হিসাবে আগে হেডার. তারপর আমি এই cp.exec না. তাই এই কাজ করতে হবে তা হচ্ছে হয় এই প্রোগ্রাম চালানো যাচ্ছে. কিন্তু এই কাজ উপায় যে হল তার জন্য অপেক্ষা করতে যাচ্ছে না শেষ যে প্রোগ্রাম. এটা ঠিক মূলত বলছেন এই প্রোগ্রাম চালানো. তাই মূলত এই টাইপ এর প্রম্পট ধরনের কমান্ড. এবং তারপর, আপনার সাথে সমাপ্ত হয়ে যখন তা, এই ফাংশন চালানো. তাই এখন আমরা ধরনের এই পেতে পুরো পুনরুদ্ধার জিনিস যেমন আমরা অপেক্ষা করছি না. তজ্জাতীয় জানার জন্য? হাঁ? AUDIENCE: [শ্রবণাতীত]? কেভিন Schmid: তাই এই ইচ্ছাশক্তি আসলে এটা করতে একটি নতুন প্রক্রিয়া খুলুন. তাই এই কিছু উপায়ে, আসলে, মন্দ সুপার মন্দ নয়, কিন্তু তা হয় গুরুত্বপূর্ণ এই ধরনের যে বলার এক হাত, ফিরে যাচ্ছে, এ্যাপাচি আমরা থ্রেড এবং প্রসেস করবেন যেখানে মডেল প্রতিটি অনুরোধের অথবা জন্য প্রতিটি অনুরোধের জন্য প্রসেস. তাই এই অনুরূপ ধরনের এ্যাপাচি কি করার. কিছু ক্ষেত্রে, এটি শুধু একটি নতুন ব্যবহার করবে একটু বেশি আলো যা থ্রেড, একটি প্রক্রিয়া ছাড়া ওজন, কিন্তু এ্যাপাচি পারে একটি নতুন প্রক্রিয়া forking শেষ আমরা এখানে কি ধরনের যা পরোক্ষভাবে ডট স্ল্যাশ গুল 45 করে. এবং তারপর সেই ক্ষেত্রে, আমরা ধরনের ভারাক্রান্ত প্রসেসের একই খরচ. তাই এই কি করতে পারবেন শুধু একটা জিনিস. তবে চলমান এই সাজানোর দেখানোর জন্য. এবং এই আলোচনা শুধু সত্যিই লক্ষ্য করা হয় একটি হিসাবে প্রোগ্রাম এই ধরনের উপস্থাপনা বিভিন্ন দৃষ্টিকোণ নেভিগেশন দেখানোর উপায় কিভাবে যে মত সার্ভার ডিজাইন করতে. আমি কি তাই আপনি যদি এই এখন তাহলে চলমান, এবং হয় এই আবার, আমি দুই প্রক্রিয়া ID-র পেয়েছিলাম. এর মাত্র কথা বলার যাক জিনিস বাতলান. সুতরাং তারা বৃদ্ধিলাভ করছি বিজ্ঞপ্তি. যে শীতল. এটা আগে 27.122 ছিল কারণ. কিন্তু নোটিশ এখন, তারা ফিরে আসেন এ প্রায় একই সময়. এবং এখন, একটি ভাল প্রশ্ন সম্পর্কে জিজ্ঞাসা কেন মামলা, যার কাজ ছিল যে এটা ধরণের এই জিনিস করা এখন ছিল ধরনের প্রতিটি সাথে ন্যায্য বাজাতে অন্যান্য, এই দুটি দৃষ্টান্ত আমি দৌড়ে যে বিন্দু স্ল্যাশ গুল 45 বা যে নোড বিশেষত্বহীন? ধরণের এটা পরিষ্কার যে তোলে কে তারা উভয় ধরনের চালানোর সময় সুষম পেতে? AUDIENCE: [শ্রবণাতীত]. কেভিন Schmid: হ্যাঁ. তাই মূলত, আমি বিন্দু স্ল্যাশ গুল যখন 45 বা যে ভালো কিছু, এখন এটা ধরনের অপারেটিং সিস্টেম পর্যন্ত ঐ প্রোগ্রামের রানটাইম হ্যান্ডেল. এবং এখন এটা তাদের নির্ধারণ করতে পারেন না বিভিন্ন CPU-অথবা এটিতে তাদের নির্ধারণ করতে পারেন না. এটা যে এক সময় আপ যেভাবেই দেখুন পারেন CPU-র তারা পান যে এটি পায় বা এক CPU-র উপর চালানো. সুতরাং যে যে পিছনে ধারণা. যে সবাই জানার জন্য? তাই এখন নোড সত্যিই একটি বাজানো না হয় এই কাজগুলো আপ বিভাজক অংশ. ঠিক আছে. সুতরাং যে প্রায় এটি উদাহরণ জন্য. আমি আরও একটি জিনিস দেখাতে চেয়েছিলেন এই অনেক এ পর্যন্ত হয়েছে কারণ সম্পূর্ণই সুপার বাস্তব না কিছু ক্ষেত্রে. আমি এই পরে বাড়িতে আসছে কল্পনা করতে পারেন কথা বলতে এবং কিছু এবং মত বলছে, পাশাপাশি আমি ধরনের যে আলোচনা থেকে বেরিয়ে এলাম যে আমি জন্য একটি Fibonacci সার্ভার বানাতে পারেন আমার চূড়ান্ত প্রকল্প. তাই এখানে শুধু ধরণের আরও একটি উদাহরণ যে আশা হবে - হয়ত না, কিন্তু হয়তো - একটু বেশি বাছাই চূড়ান্ত প্রকল্পে প্রাসঙ্গিক এবং যে ভালো জিনিসের জন্য এগিয়ে চিন্তা. তাই এই chat.js. হয় তাই এই ধরনের কিছু নমুনা পছন্দ হয় আপনি ব্যবহার করতে পারেন যে সার্ভার প্রান্তের কোড একটি ছোট চ্যাট সার্ভার মত সেট আপ আপনি দেখা হয়ে থাকতে পারে ফেসবুক চ্যাট বা যাই হোক না কেন. তাই আমি এই ফেসবুকের মত বলছে না চ্যাট করুন, কিন্তু এই ধরনের হয় হয়তো হয়তো ভালো নয়, কিন্তু - একটি ভাল মত ভাল - একটি চ্যাটের জন্য শুরু বিন্দু আপনার ওয়েব সাইটের জন্য সার্ভার একটি চূড়ান্ত প্রকল্পের জন্য. সুতরাং আসুন এরকম কি তাকান. সুতরাং আমরা এই বিশেষ জিনিস পেয়ে থাকেন শীর্ষে, এই SIO var Socket.IO প্রয়োজন সমান. তাই এই না হয় অন্য যে জিনিস আসলে সঙ্গে bundled আসে নোড কিন্তু আপনি তা ইনস্টল করতে পারেন. এটি একটি নোড মডিউল এর. তাই এটি শুধু কিছু মত আছে নোড যাও এক্সটেনশন. SocketIO সত্যিই আসলে শান্ত ধরনের. এটা যে মূলত কি একটি বিমূর্ততা এর এটা এটা আপনি করতে পারবেন হয় না যোগাযোগের এই প্রবাহ আছে একটি ওয়েব মধ্যে ব্রাউজার এবং ওয়েব সার্ভার. সুতরাং এ পর্যন্ত অধিকাংশ অংশ জন্য, আমরা ছিল করেছি এইসব খুব দ্রুত এক দ্বিতীয় বা দুই একটি ওয়েব মধ্যে দ্বিতীয় যোগাযোগ ব্রাউজার এবং ওয়েব সার্ভার. সুতরাং এটি মূলত google.com, পাওয়া যেতে হচ্ছে স্টাফ তারপর, এটা ফেরত পাঠান, এবং আমরা কাজ সম্পন্ন হয়. আমরা যতক্ষণ না আবার কথা বলা না করছি ব্যবহারকারী ধরনের অন্য কিছু মধ্যে. কিন্তু কি Socket.IO এবং অনুরূপ ধরনের বিষয় - এবং SocketIO আসলে এক হিসাবে নির্মিত হয় যে জিনিস WebSocket যা ধরণের উপলব্ধ HTML5 এর অংশ হিসেবে - যে আপনি এই করতে সক্ষম হবেন অব্যাহত সংলাপ. এবং এই একটি চ্যাট সার্ভার মধ্যে খুবই দরকারী ধরনের জিনিস এটা কারণ ধরনের একটি অব্যাহত সংলাপ চাই কিছু উপায়, কারণ আপনি চ্যাট করছেন কারো সঙ্গে, আপনি এখন শুধু একটি পাঠাতে পারেন তারপর নল নিচে বার্তা, এবং সার্ভার ডাউন একটি বার্তা পাঠাতে পারেন আপনি অন্য ব্যক্তি নল সাথে চ্যাট. এবং তারপর আপনি এই থাকতে পারে যে মত বিনিময়. সুতরাং যে কি ধরনের SocketIO জন্য ভাল. SocketIO মাধমে ব্যবহার করে যে কারণে এক জিনিস হিসাবে যে এ শুধু সাধারণ পুরানো মাধমে ছাড়াও, এটি মূলত কিছু ট্রিকস আছে এটি ব্রাউজার সামঞ্জস্যপূর্ণ করে তুলতে. ইন্টারনেট এক্সপ্লোরার এর মত তাই ব্রাউজার দুর্ভাগ্যবশত মাধমে সমর্থন করে না ডান বাক্সের বাইরে. সুতরাং এটি শীতল ঝরঝরে কিছু অন্য ধরনের ব্যবহার অনুমতি অ্যাডোবি ফ্ল্যাশ সঙ্গে জিনিসের আপনি ক্রস ব্রাউজার সাপোর্ট আছে. সুতরাং যে সত্যিই দরকারী. এবং প্রকৃতপক্ষে, আমি আমি ধরনের আছি জানি এখানে সময় চলমান, কিন্তু CS50 আলোচনা করুন, যদি কখনও কিছু দেখেছি মত, আমি জানি না, ফাঁকা তাই এবং তাই হয় এই পোস্ট বা কিছু জবাবে সেই মতো, যে বৈশিষ্ট্য? যে SocketIO এর. তাই কারো টাইপ শুরু হয় যখন একটি উত্তর বা করতে বক্স নিয়ে আলোচনা কিছু, আপনার ব্রাউজার কি আছে SocketIO বলা কিছু ধরনের নির্গত কারো বলছেন যে ঘটনা এই পোস্টে উত্তর. তারপর সার্ভার, ঠিক আছে, বলছেন আমি কি করতে আছে? অবশ্য, এখন আমি ঐ অন্যান্য বলছি জানাতে হবে যারা CS50 হয় খুঁজছেন আলোচনা এই পোস্টে কারো উত্তর যে. সুতরাং যে SocketIO কি ধরনের এই অব্যাহত ধরনের, জন্য ভাল সংলাপে প্রবাহ. ঠিক আছে. তাই আমি এখানে কি কি আছে - এবং আমরা ঠিক করছি সংযোগের অ্যারে উপেক্ষা যাচ্ছে অল্প জন্য - আমি কি আমি অন্য শুনতে না হয়. সুতরাং যে শুধু Socket.IO এ ভাবে হয় না এর এই পোর্ট নেভিগেশন শুনতে যাক বলছে. এবং তারপর আমি সংযোগ এই কাজ. সুতরাং যে ঠিক মূলত সকেট IO এর বেশি আমরা একটি গ্রহণ করার সময়, বলছে পথে সংযোগ, আমি আপনাকে চাই এই কোড রান করার. এবং পরিবর্তে Rec থাকার নোটিশ এবং সেখানে সালে পাশ মাঝামাঝি আমি সকেট আছে. এবং এই সকেট ধারণা মূলত এই হল আপনি লিখুন এবং পড়তে পারেন যে জিনিস যে থেকে ব্যবহারকারীর হয়েছে সম্ভবত Netlog. এবং আপনি পাঠাতে হবে যে বার্তা যে সকেট দিয়ে যেতে পারেন. যে জানার জন্য? সুতরাং এই অব্যাহত জিনিস. তাই কি আমি না আমি Socket.emit কল হয়. আর নি: সরণ বেশ লাগে অনেক দুটি আর্গুমেন্ট. প্রথম যুক্তি একটি স্ট্রিং শুধু ধরনের প্রতিনিধিত্বমূলক আপনি emitting করছি জিনিস. তাই এই ক্ষেত্রে জন্য, আমি ব্যবহার করেছি এই পংক্তিটি নতুন বার্তা. এবং যে মাত্র মূলত এর বলছে যে আমি কি এই জিনিস ধরণ, পাঠানোর একটি নতুন বার্তা. তাই আপনি যদি নির্দিষ্ট ধরনের জন্য শুনতে পারেন নতুন বার্তা বা যাই হোক না কেন চাই ডট নেভিগেশন ব্যবহার করে. তাই সংযোগ এবং ব্যবহারকারী যদি সেখানে পাঠানো আপনি, আমরা ডট আহ্বান যেখানে তাকান যারা প্রতিনিধিত্ব করেন যে অন্যান্য স্ট্রিং হয় ব্যবহারকারী বার্তার ধরন. সুতরাং আপনি এই নি: সরণ থাকতে পারে মূলত এর এই বার্তাটি ধরনের এক, এবং তারপর প্রতিক্রিয়ায় কিছু করতে এই বার্তাটি ধরনের এক তাই আমি এই নতুন বার্তা emitting করছি. আমরা connections.push উপেক্ষা চলুন এক সেকেন্ডের জন্য. কিন্তু তারপর আমি Socket.on ব্যবহারকারীর প্রেরিত বলে. তাই এখন এটা কোন ধরনের মত যখন ইউজার আমাকে একটি বার্তা পাঠায়, আমি চাই আপনি এই কোড রান করার. এবং লক্ষ্য করা যে যে বেনামী ফাংশন এই পরিবর্তনশীল সালে নিচ্ছে মূলত যাচ্ছে যা তথ্য আহ্বান ব্যবহারকারীর মেসেজ আছে. সম্পর্কে আলোচনা তাই এখন আসুন ধরনের সংযোগের অ্যারে. তাই এই একটি চ্যাট ক্লায়েন্ট জন্য ডিজাইন করা হয়েছে মূলত সবাই এ ধরনের যেখানে একই চ্যাট রুম. তাই মূলত, আমরা কি রাখা প্রয়োজন চারপাশে কিছু অ্যারে যে মূলত এ চ্যাটিং সব মানুষের প্রতিনিধিত্ব করে কিছু উপায়ে, যে অর্থে তোলে যদি. রাইট? আমরা যারা বলছি যারা জানতে হবে কারণ তাই আমরা তাদের বার্তা পাঠাতে পারেন হয় যে অন্যান্য ব্যক্তি আমাদের কাছে পাঠান. তাই কি এই কোড আছে যখন ব্যবহারকারী একটি বার্তা পাঠায় - যে ধরনের আছে ঘটনা - আমরা এই কোড রান চলুন. এবং কি আমরা করতে আমরা এই মাধ্যমে চালানো হয় আমরা সংযোগ নামক যে অ্যারে. এবং প্রতি সংযোগের জন্য প্রায় কাছাকাছি আমাদের যে এক ছাড়া, যে এই কোড কি বলছেন, আমরা একটি নতুন পাঠাতে যে সংযুক্ত বার্তা বার্তা তথ্য. আপনি এখানে বিজ্ঞপ্তি সুতরাং, যদি কি আমি করেছিলাম যখন ব্যবহারকারী আসলে নতুন করে সংযোগ আমি সঙ্গে যুক্ত করেছি হয় JavaScript.push পদ্ধতি, এই হল মূলত ঠিক মত যোগ বলছে মধ্যে একটি মান হিসাবে যে সকেট আমাদের সংযোগ অ্যারে. এই কোড রান যখন সুতরাং এখন, এটা করবে ঐ বিশেষ জিনিষ পাঠান সংযোগ. তাই এই একটি ভালো শুরু হতে পারে একটি চ্যাট সার্ভার তৈরীর জন্য বা অনুরূপ কিছু. এবং শান্ত ধরনের জিনিস যে আপনার উপর মত জন্য এখানে দেখুন এবং যে কোড নির্গত এবং যে ভালো স্টাফ একই জাভাস্ক্রিপ্ট কোড ধরনের যে আপনি যোগাযোগ করার জন্য ব্রাউজারে লিখুন সার্ভারের সাথে. SocketIO ধরনের হয় সুতরাং যে কেন ঝরঝরে এবং যে উপায়ে দরকারী. ওহ এবং শুধু আরও একটি জিনিস রিয়েল দ্রুত. একটি CS50 চূড়ান্ত প্রকল্প গত বছর ছিল যে মূলত একটি চ্যাট বাস্তবায়িত কলব্যাক মধ্যে সার্ভার আমি এটা Harvardchats.org মনে করি কিন্তু আমি নই - ঠিক আছে. আমি ইউআরএল কি নিশ্চিত না, কিন্তু আমি পরে যে আউট পাঠাতে পারেন. কিন্তু এটা কোন ধরনের ঠান্ডা কি আপনি কলব্যাক করতে পারেন তাই আমি সাধারণত, আপনাকে বলছি আছে, আশা করি একটি Node.js দরকারী কি বিচারবুদ্ধি জন্য এবং কিভাবে আপনি হয়ত আবেদন করতে পারে আপনার চূড়ান্ত প্রকল্প. আমি আরো কিছু আউট প্রেরণ করা হবে এই বরাবর সম্পদ. আর আসার জন্য আপনাকে ধন্যবাদ. আপনাকে ধন্যবাদ. [সাধুবাদ]