【nodejs实打造多人实时聊天室】
生活随笔
收集整理的這篇文章主要介紹了
【nodejs实打造多人实时聊天室】
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
server.js文件
// 加載net模塊 var net = require("net"); // 創(chuàng)建net實(shí)例對象 var server = net.createServer(); // 保存所有客戶的socket對象 var users = []; // 創(chuàng)建服務(wù) server.on('connection', function (socket) { //a.告訴所有其他客戶,有新成員進(jìn)來了// 遍歷客戶實(shí)例對象,通過套接字獲取客戶端口號users.forEach(function (client) {client.write(socket.remotePort + '進(jìn)入聊天室》');});users.push(socket); //b.保存當(dāng)前的socketsocket.on('data', function (data) { //c.設(shè)置當(dāng)前socket的消息傳輸?shù)奶幚矸绞?/span>data = data.toString().trim(); //一旦收到消息,就轉(zhuǎn)發(fā)給其他所有客戶users.forEach(function (uesr) {if (uesr != socket) {//不是自己uesr.write(socket.remotePort + ':' + data)}});})socket.on('error', function (err) {console.log(socket.remotePort + '退出聊天室');}) }) server.listen(3000, function () { //4.啟動監(jiān)聽console.log('服務(wù)器已經(jīng)在端口號3000啟動監(jiān)聽。。。。。'); }) server.on('error', function () {console.log('服務(wù)器異常退出'); })client.js文件
//導(dǎo)入net var net = require('net'); // 創(chuàng)建連接,產(chǎn)生socket對象 var socket = net.createConnection({host: '127.0.0.1',port: 3000 }) // 輸入消息 socket.on('connect', function () {console.log('進(jìn)入聊天室......');/*** 準(zhǔn)備輸入聊天信息* nodejs中提供了process模塊,支持終端設(shè)備進(jìn)行IO操作,全局模塊。不需要導(dǎo)入* stdin對象獲得鍵盤輸入(回車后)* 接收到鍵盤輸入,就將消息發(fā)送到服務(wù)器*/process.stdin.on('data', function (data) {socket.write(data.toString().trim());}); }) //接收消息 socket.on('data', function (data) {console.log(data.toString().trim()); }); socket.on('error', function (err) {console.log('服務(wù)器異常退出。'); })總結(jié)
以上是生活随笔為你收集整理的【nodejs实打造多人实时聊天室】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BCT2186 1A低压差线性稳压器
- 下一篇: Vue 项目中各种痛点问题及解决方案