//如何在機房開心的聊天离咐。(建立node聊天室)

試想一下,上機課,你和你心愛的姑娘坐了好遠好遠宵蛀,三個小時的寂寞昆著,誰能懂,在機房术陶,或信號差凑懂,或老師管的嚴,不讓玩手機梧宫。

又試想一下接谨,上機課,你想在你心愛的姑娘面前表現(xiàn)出一副大牛的樣子塘匣,這樣脓豪,之后課設(shè),作業(yè)馆铁,她便會不自居的向你靠來跑揉,成為人贏,就在現(xiàn)在埠巨。

這篇文章教大家做一個局域網(wǎng)的簡易聊天室,二百行代碼现拒,實現(xiàn)你的裝嗶~夢辣垒。

前期準備,部署 node 環(huán)境勋桶。

為什么要用NODE例驹?它足夠小,比JAVA /C++ 部署方便得多退唠,JS夠簡單瞧预,記事本就能寫出你華麗的代碼盆驹。廢話不多說,開始廉丽。

用到API璃诀,node.net.


//首先建立服務(wù)端

```

constnet = require('net');

// 用于存儲所有的連接

var clients = [];

var port =2080; //定義服務(wù)器端口

server.listen(port, (err) => {

if(err) {

console.log('端口被占用');

return false;

}

console.log(`服務(wù)端正常啟動監(jiān)聽【${port}】端口`);

})

varserver = net.createServer((socket) => {

clients.push(socket);

console.log(`Welcome${socket.remoteAddress}to ${port} chatroom`);

functionboardcast(signal) {

console.log(signal);

// 肯定有用戶名和消息

var username = signal.from;

var message = signal.message;

// 我們要發(fā)給客戶端的東西

var send = {

procotol: signal.procotol,

from: username,

message: message

};

// 廣播消息

clients.forEach(client=> {

client.write(JSON.stringify(send));

});

}

// 有任何客戶端發(fā)消息都會觸發(fā)

socket.on('data', (chunk) => {

try{

var signal = JSON.parse(chunk.toString().trim());

var procotol = signal.procotol;

switch(procotol) {

case'boardcast':

boardcast(signal);

break;

default:

socket.write('啥凿将,你想吃日新樓?');

break;

}

}catch(error) {

socket.write('弄啥咧犀变!');

}

});

});

```

具體思路,設(shè)置服務(wù)器監(jiān)聽端口,客戶端接入時懦傍,列入數(shù)組,有消息進來,選擇消息傳播方式废麻。這里設(shè)置boardcast 廣播模式,消息循環(huán)發(fā)送到所有客戶端慎冤,完成簡易聊天功能。

下面開始完成客戶端


```

// 創(chuàng)建于服務(wù)端的連接

varserver = net.connect({ port:2080, host:'/*你機器的端口*/'}, () => {

console.log(`Welcome${name}to 2080 chatroom`);

// 監(jiān)聽服務(wù)端發(fā)過來的數(shù)據(jù)

server.on('data', (chunk) => {

try{

var signal = JSON.parse(chunk.toString().trim());

var procotol = signal.procotol;

switch(procotol) {

case'boardcast':?

//廣播模式接受數(shù)據(jù)。

console.log('\nboardcast');

console.log(signal.from +'>');

console.log(signal.message);?

//收到聊天內(nèi)容打印出來

rl.prompt();?

break;

default:

server.write('中午吃啥');

break;

}

}catch(error) {

server.write('弄啥咧唱歧!');

}

});

rl.setPrompt(name +'> ');

rl.prompt();

rl.on('line', (line) => {

var send = {

procotol:'boardcast',

from: name,

message: line.toString().trim()

};

server.write(JSON.stringify(send));

rl.prompt();

}).on('close', () => {

});

});

});

```

思路,訪問監(jiān)聽的端口號,輸入用戶名和消息,發(fā)送至服務(wù)端,服務(wù)端接受后置逻,循環(huán)廣播至每個客戶端肺素,實現(xiàn)聊天功能恨锚。

學弟學妹們,你們下學期的課設(shè)倍靡,有一項加分項就是實現(xiàn)聊天功能,代碼放到這里咯他挎。不懂隨時來問。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末薛匪,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子太颤,更是在濱河造成了極大的恐慌苞俘,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件做裙,死亡現(xiàn)場離奇詭異岗憋,居然都是意外死亡,警方通過查閱死者的電腦和手機锚贱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門仔戈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人拧廊,你說我怎么就攤上這事监徘。” “怎么了吧碾?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵凰盔,是天一觀的道長。 經(jīng)常有香客問我滤港,道長廊蜒,這世上最難降的妖魔是什么趴拧? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮山叮,結(jié)果婚禮上著榴,老公的妹妹穿的比我還像新娘。我一直安慰自己屁倔,他們只是感情好脑又,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著锐借,像睡著了一般问麸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上钞翔,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天严卖,我揣著相機與錄音,去河邊找鬼布轿。 笑死哮笆,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的汰扭。 我是一名探鬼主播稠肘,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼萝毛!你這毒婦竟也來了项阴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤笆包,失蹤者是張志新(化名)和其女友劉穎环揽,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體庵佣,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡薯演,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了秧了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡序无,死狀恐怖验毡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情帝嗡,我是刑警寧澤晶通,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站哟玷,受9級特大地震影響狮辽,放射性物質(zhì)發(fā)生泄漏一也。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一喉脖、第九天 我趴在偏房一處隱蔽的房頂上張望椰苟。 院中可真熱鬧,春花似錦树叽、人聲如沸舆蝴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽洁仗。三九已至,卻和暖如春性锭,著一層夾襖步出監(jiān)牢的瞬間赠潦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工草冈, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留她奥,地道東北人。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓疲陕,卻偏偏與公主長得像方淤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蹄殃,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容