日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【nodejs实打造多人实时聊天室】

發(fā)布時間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。