هذا المقال مثال Node.js ينشئ خادم دردشة الويب للاتصال الفوري للرجوع إليه. المحتوى المحدد كما يلي
1. استخدم nodejs-websocket
Nodejs-Websocket هي مكتبة خلفية تنفذ بروتوكول WebSocket مكتوب استنادًا إلى Node.js.
الاتصال: https://github.com/sitegui/nodejs-websocket.
(1) التثبيت
تثبيت من خلال NPM في دليل المشروع: NPM تثبيت NodeJS-Websocket
(2) إنشاء خادم
// إدخال nodejs-websocketvar ws = require ("nodejs-websocket") ؛ // طريقة Call Correeserver لإنشاء الخادم ، و conn في وظيفة رد الاتصال هي مثيل للاتصال var server = ws.create (function (conn) {console.log ("اتصال جديد") " + str) ؛}) ؛ // استمع إلى الحدث الإغلاق ، و regger conn.on (" Close "، function (code ، easure) {console.log (" connection leable ") ؛})}). الاستماع (8888) ؛2. يستخدم العميل WebSocket
على العميل ، تحتاج إلى إنشاء مثيل لكائن WebSocket: WS = جديد WebSocket ("WS: // localhost: 5000") ؛ المعلمة التي تم تمريرها هي WS: //+url ، والتي هي نفس بادئة بروتوكول HTTP http: //. بعد ذلك ، يمكنك استخدام بعض الطرق المضمنة لـ WebSocket لمراقبة الأحداث وعرض البيانات.
نقدم هنا كل حدث استماع: تشغيل OnoPen عندما يقوم الخادم والعميل بإنشاء اتصال ؛ onMessage يوجه عندما يتلقى العميل البيانات التي يرسلها الخادم ؛ يحفز Onclose عند إغلاق العميل واتصال الخادم ؛ يحفز Onerror عند حدوث خطأ في الاتصال.
3. استخدم WebSocket + Nodejs لتنفيذ غرفة الدردشة عبر الإنترنت
(1) تم حذف رمز HTML و CSS
(2) عميل JS:
Oconnect.onclick = function () {ws = new websocket ('ws: // localhost: 5000') ؛ ws.onopen = function () {oul.innerhtml+= "<li> client connected </li>" ؛ } ws.onmessage = function (evt) {oul.innerhtml+= "<li>"+evt.data+"</li>" ؛ } ws.onclose = function () {oul.innerhtml+= "<li> عميل منفصل </li>" ؛ } ؛ ws.onerror = function (evt) {oul.innerhtml+= "<li>"+evt.data+"</li>" ؛ } ؛ } ؛ osend.onclick = function () {if (ws) {ws.send (oinput.value) ؛ }} (3) يدعم جانب الخادم JS: /*WebSocket نوعين من نقل البيانات: نوع النص والنوع الثنائي ، حيث يتم إرسال البيانات الثنائية وقراءتها من خلال نمط الدفق* /var app = require ('http'). createServer (معالج) ؛ // لتبسيط الكود ، ضع رمزًا محددًا لإنشاء الخادم في وظيفة المعالج var ws = require ('nodejs-websocket') ؛ var fs = require ('fs') ؛ app.listen (8888) ؛ معالج الوظائف (REQ ، RES) {// __ DirName يعيد الدليل الحالي حيث يوجد الملف. استدعاء طريقة readfile لقراءة الملف fs.readfile (__ dirname+'/index.html' ، الدالة (err ، البيانات) {if (err) {res.writehead (500) ؛ return res.end ('error') ؛} res.writehead (200) ؛ res.end (data) ؛ مثيل للاتصال المقابل var server = ws.createserver (function (conn) {console.log ('new connecton') ؛ // استمع إلى حدث النص ، و regger conn.on ("text" ، function (str) {عند استلام النص (server ، str) ؛ console.log ('connection learned') ؛ // لاحظ أن المستمع هنا هو منفذ الخادم الذي تم فتحه للتو. يرسل العميل الرسالة هنا لمعالجة البث الدالة (الخادم ، msg) {//server.connections هي صفيف يحتوي على جميع العملاء المتصلين.آمل أن يكون كل محتوى هذا مفيدًا لتعلم الجميع ، وآمل أن يدعم الجميع wulin.com أكثر.