Contoh artikel ini node.js membuat server obrolan web untuk komunikasi instan untuk referensi Anda. Konten spesifiknya adalah sebagai berikut
1. Gunakan NodeJs-Websocket
NodeJs-Websocket adalah pustaka backend yang mengimplementasikan protokol WebSocket yang ditulis berdasarkan node.js.
Koneksi: https://github.com/sitegui/nodejs-websocket.
(1) Instalasi
Instal melalui NPM di Direktori Proyek: NPM Instal Nodejs-Websocket
(2) Buat server
// perkenalkan nodejs-websocketvar ws = membutuhkan ("nodeJs-websocket"); // Metode Call CreateVer untuk membuat server, dan Conn dalam fungsi callback adalah instance dari koneksi var server = ws.create (function (conn) {console.log ("koneksi baru"); // dengarkan acara teks, dan peristiwa teks yang diseret ("string) (" function) ("TEXTON TEXTON." str);});2. Klien menggunakan WebSocket
Pada klien, Anda perlu instantiate objek WebSocket: ws = WebSocket baru ("ws: // localhost: 5000"); Parameter yang dilewati adalah ws: //+url, yang sama dengan awalan protokol http http: //. Selanjutnya, Anda dapat menggunakan beberapa metode bawaan Websocket untuk memantau acara dan menampilkan data.
Di sini kami memperkenalkan setiap acara mendengarkan: OnOpen memicu ketika server dan klien membuat koneksi; OnMessage memicu ketika klien menerima data yang dikirim oleh server; Onclose memicu ketika klien dan koneksi server ditutup; Onerror memicu ketika kesalahan koneksi terjadi.
3. Gunakan WebSocket + NodeJs untuk mengimplementasikan ruang obrolan online
(1) Kode HTML dan CSS dihilangkan
(2) Klien JS:
oconnect.onClick = function () {ws = WebSocket baru ('ws: // localhost: 5000'); ws.onopen = function () {oul.innerHtml+= "<li> klien terhubung </li>"; } ws.onMessage = function (evt) {oul.innerHtml+= "<li>"+evt.data+"</li>"; } w.onclose = function () {oul.innerHtml+= "<li> Klien terputus </li>"; }; ws.onError = function (evt) {oul.innerHtml+= "<li>"+evt.data+"</li>"; }; }; osend.onClick = function () {if (ws) {ws.send (oinput.value); }} (3) Sisi server JS: /*WebSocket mendukung dua jenis transmisi data: jenis teks dan jenis biner, di mana data biner dikirim dan dibaca melalui pola aliran* /var app = membutuhkan ('http'). CreateServer (handler); // Untuk menyederhanakan kode, masukkan kode spesifik pembuatan server ke dalam fungsi handler var ws = membutuhkan ('nodejs-websocket'); var fs = membutuhkan ('fs'); app.listen (8888); function handler (req, res) {// __ dirname mengembalikan direktori saat ini di mana file berada. Hubungi metode ReadFile untuk membaca file fs.readfile (__ dirname+'/index.html', function (err, data) {if (err) {res.writeHead (500); return res.end ('error');} res.writeHead (200); res.end (data);});} conn.writeHead (200); res.end (data);});} LOP -LOP -LOP -LOPS. Sebuah instance dari koneksi yang sesuai var server = ws.createServer (function (conn) {console.log ('new connecton'); // dengarkan acara teks, dan pemicu conn.on ("text", function (str) {kapan pun teks yang diterima (server, str)); // ketika ada penutupan koneksi, koneksi dalam koneksi dalam koneksi dalam output (server, str)); // console.log ('koneksi tertutup');})}). Dengarkan (5000); // Perhatikan bahwa pendengar di sini adalah port server yang baru saja dibuka. Klien mengirim pesan di sini untuk memproses fungsi siaran (server, msg) {//server.connections adalah array yang berisi semua klien yang terhubung.Saya berharap semua konten ini bermanfaat bagi pembelajaran semua orang, dan saya berharap semua orang akan lebih mendukung wulin.com.