ตัวอย่างบทความนี้ 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 = ต้องการ ("nodejs-websocket"); // วิธีการเรียก createServer เพื่อสร้างเซิร์ฟเวอร์และ conn ในฟังก์ชันการเรียกกลับเป็นอินสแตนซ์ของการเชื่อมต่อ var server = ws.create (ฟังก์ชั่น (conn) {console.log ("การเชื่อมต่อใหม่"); // ฟังเหตุการณ์ข้อความ " + str);}); // ฟังเหตุการณ์ปิดและทริกเกอร์ conn.on (" ปิด ", ฟังก์ชั่น (รหัส, เหตุผล) {console.log (" ปิดการเชื่อมต่อ ");})}) ฟัง (8888);2. ไคลเอนต์ใช้ WebSocket
บนไคลเอนต์คุณต้องทำอินสแตนซ์วัตถุ WebSocket: WS = ใหม่ WebSocket ("WS: // LocalHost: 5000"); พารามิเตอร์ที่ส่งผ่านคือ WS: //+URL ซึ่งเหมือนกับคำนำหน้า HTTP Protocol คำนำหน้า http: // ถัดไปคุณสามารถใช้วิธีการบางอย่างของ WebSocket ในตัวเพื่อตรวจสอบเหตุการณ์และแสดงข้อมูล
ที่นี่เราแนะนำเหตุการณ์การฟังแต่ละครั้ง: Onopen Triggers เมื่อเซิร์ฟเวอร์และไคลเอนต์สร้างการเชื่อมต่อ OnMessage ทริกเกอร์เมื่อไคลเอนต์ได้รับข้อมูลที่ส่งโดยเซิร์ฟเวอร์ ทริกเกอร์ onClose เมื่อลูกค้าและการเชื่อมต่อของเซิร์ฟเวอร์ปิด ONERROR Triggers เมื่อเกิดข้อผิดพลาดการเชื่อมต่อ
3. ใช้ WebSocket + NodeJS เพื่อใช้ห้องแชทออนไลน์
(1) การละเว้นรหัส HTML และ CSS
(2) ลูกค้า JS:
oconnect.onclick = function () {ws = ใหม่ websocket ('ws: // localhost: 5000'); ws.onopen = function () {oul.innerhtml+= "<li> ไคลเอนต์เชื่อมต่อ </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 () {ถ้า (ws) {ws.send (oinput.value); }} (3) เซิร์ฟเวอร์ด้าน JS: /*WebSocket รองรับการส่งข้อมูลสองประเภท: ประเภทข้อความและประเภทไบนารีโดยที่ข้อมูลไบนารีจะถูกส่งและอ่านผ่านรูปแบบสตรีม* /var app = ต้องการ ('http') createServer (handler); // ในการทำให้รหัสง่ายขึ้นให้ใส่รหัสเฉพาะการสร้างเซิร์ฟเวอร์ลงในฟังก์ชั่นตัวจัดการ var ws = ต้องการ ('nodejs-websocket'); var fs = ต้องการ ('fs'); app.listen (8888); ฟังก์ชั่นตัวจัดการ (req, res) {// __ dirname ส่งคืนไดเรกทอรีปัจจุบันที่ไฟล์อยู่ เรียกวิธีการอ่านไฟล์สำหรับการอ่านไฟล์ fs.readfile (__ dirname+'/index.html', ฟังก์ชั่น (err, data) {ถ้า (err) {res.writehead (500); return res.end ('ข้อผิดพลาด');} res.writehead (200); res.end (data); อินสแตนซ์ของการเชื่อมต่อที่สอดคล้องกัน var server = ws.createServer (ฟังก์ชั่น (conn) {console.log ('New Connecton'); // ฟังเหตุการณ์ข้อความและทริกเกอร์ conn.on ("ข้อความ", ฟังก์ชัน (str) {เมื่อใดก็ตามที่ข้อความได้รับการเชื่อมต่อ (str) console.log ('การเชื่อมต่อปิด');})}) ฟัง (5000); // โปรดทราบว่าผู้ฟังที่นี่เป็นพอร์ตของเซิร์ฟเวอร์ที่เพิ่งเปิด ไคลเอนต์ส่งข้อความที่นี่เพื่อประมวลผลฟังก์ชั่นการออกอากาศ (เซิร์ฟเวอร์, ผงชูรส) {//server.connections เป็นอาร์เรย์ที่มีไคลเอนต์ที่เชื่อมต่อทั้งหมด connections.foreach (ฟังก์ชั่น (conn) {//connection.sendtext วิธีการส่งเนื้อหาที่ระบุไปยังไคลเอนต์ฉันหวังว่าเนื้อหาทั้งหมดของเรื่องนี้จะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น