麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

node.js實(shí)戰(zhàn)學(xué)習(xí)筆記01--異步開發(fā)簡單的聊天服務(wù)器

2019-11-14 10:43:39
字體:
供稿:網(wǎng)友

啟動(dòng)腳本app.js如下:

#!/usr/bin/env node

var events = require('events');var net = require('net');var channel = new events.EventEmitter();channel.clients = {};

channel.subscriptions = {};

/*添加join事件的監(jiān)聽器,保存用戶的client對象,以便程序可以將數(shù)據(jù)發(fā)送給用戶*/

channel.on('join',function(id,client){    this.clients[id] = client;

    this.subscriptions[id] = function(senderId,message){

/*忽略發(fā)出這一廣播數(shù)據(jù)的用戶*/

      if(id != senderId){        this.clients[id].write(message);      }

    }

    /*添加一個(gè)專門針對當(dāng)前用戶的broadcast事件監(jiān)聽器*/

    this.on('broadcast',this.subscriptions[id]);

    /*client連接進(jìn)來,顯示歡迎字幕,并統(tǒng)計(jì)當(dāng)前client數(shù)量*/

    var welcome = "Welcome!/n"+'Guests online: '+this.listeners('broadcast').length;

    client.write(welcome+'/n');

    /*通知其它c(diǎn)lient用戶,當(dāng)前client用戶進(jìn)入聊天室*/

    channel.emit('broadcast',id,id+' come in the chat./n');

});

/*添加client用戶離開的leave事件的監(jiān)聽器,通知所有人client用戶離開了*/

channel.on('leave',function(id){    channel.removeListener(      'broadcast',this.subscriptions[id]);    channel.emit('broadcast',id,id+' has left the chat./n');

});

/*關(guān)閉聊天室,移出所有監(jiān)聽*/

channel.on('shutdown',function(){channel.emit('broadcast','','chat has shut down./n');    channel.removeAllListeners(      'broadcast');

});

/*設(shè)置最大監(jiān)聽的數(shù)量,默認(rèn)超過10個(gè)監(jiān)聽會(huì)*/

channel.setMaxListeners(50);

var server = net.createServer(function(client){    var id = client.remoteAddress + ':' + client.remotePort;

    console.log('client id '+id);

    /*當(dāng)有client用戶連接到服務(wù)器上來時(shí)發(fā)出一個(gè)join事件*/

    channel.emit('join',id,client);    client.on('data',function(data){data = data.toString();

console.log(data);

/*收到s字符,關(guān)閉聊天室*/

if(data == "s"){console.log(data);channel.emit('shutdown');

}else{

/*廣播聊天信息*/

channel.emit('broadcast',id,data);

        }

    });

/*添加client用戶斷開連接的監(jiān)聽事件*/

    client.on('close',function(){channel.emit('leave',id);    });});server.listen(3000);

console.log('started ... ');

啟動(dòng)node服務(wù):node app.js

操作系統(tǒng)命令行,輸入命令,進(jìn)入聊天室:telent 127.0.0.1 3000

多開幾個(gè)命令窗口,查看效果。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 成熟女人特级毛片www免费 | 国产精品1区2区在线观看 | 国产一精品一av一免费爽爽 | 日韩精品羞羞答答 | 一级免费在线视频 | 日韩激情一区 | 99re热视频这里只精品 | 精品一区久久久 | 九九精品免费 | 极品国产91在线网站 | 亚洲码无人客一区二区三区 | 欧美城网站地址 | 97青青| 九九热在线免费观看视频 | 久久久久亚洲视频 | 免费三级大片 | 在线视频 亚洲 | 91九色电影 | 日本一区二区高清不卡 | 国产污污视频 | 国产精品一区二区三区在线播放 | 日日碰日日操 | 毛片免费看网站 | 麻豆国产网站 | 欧美综合日韩 | 欧美视频在线一区二区三区 | 精品国产中文字幕 | 在线看91| 高清中文字幕在线 | 一级黄色性感片 | 国产午夜亚洲精品理论片大丰影院 | 欧美精品电影一区二区 | 亚洲成人第一区 | 国产资源在线观看视频 | 久草免费新视频 | 亚洲特黄 | 国产精品久久久久久久久久久久久久久久 | 日韩视频在线视频 | 成人午夜免费观看 | 91成人一区 | 一区二区三区欧美在线观看 |