node搭建websocket 聊天功能;

1.安裝node烈涮。安裝依賴
2.安裝websocket 模塊依賴 命令為:npm install nodejs - websocket
3.安裝完依賴
4.建立index.js復(fù)制以下js
5.cd 找到index.js 啟動為: node index.js

var ws = require("nodejs-websocket");
var PORT =3000;
var clientCount = 0;
var server = ws.createServer(function (conn) {
// console.log("new commmmm");
clientCount ++;
conn.nickname ='路人:' + clientCount;
var mes ={};
mes.type = "enter";
mes.data = conn.nickname + '進(jìn)入了聊天';
broadcast(JSON.stringify(mes));
// broadcast(conn.nickname + '進(jìn)來');
conn.on("text",function (str) {
console.log("收到" + str);
// conn.sendText(str.toUpperCase()+"chen")
var mes ={};
mes.type = "message";
mes.data = conn.nickname + "說" + str;
broadcast(JSON.stringify(mes));
// broadcast(str);
});
conn.on("close",function (code ,reason) {
console.log('連接已關(guān)閉');
// broadcast(conn.nickname + "離開了");
var mes ={};
mes.type = "leave";
mes.data = conn.nickname + '離開了';
broadcast(JSON.stringify(mes));
// broadcast(str);
});
conn.on("error",function (err) {
console.log('處理錯誤');
});
}).listen(PORT);
console.log("WebSocket" + PORT);
function broadcast(str) {
server.connections.forEach(function (connection) {
connection.sendText(str)
})
}

建立inde.html復(fù)制一下內(nèi)容胁澳。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>聊天</title>
<style>
{
margin: 0;
padding: 0;
}
.cl_all{
width: 350px;
margin: 40px auto 0;
}
.cl_chat_all{
width: 100%;
height: 400px;
border: 1px solid black;
}
.cl_son_all{
width: 100%;
height: 400px;
overflow-y: auto;
}
.cl_btn_all{
margin-top: 2px;
width: 100%;
overflow: hidden;
}
.cl_sen_txt{
width: 75%;
height: 34px;
float: left;
}
.cl_sen_btn{
width: 20%;
height: 36px;
background: red;
float: right;
text-align: center;
line-height: 34px;
}
.cl_add_one{
/
float: right;/
color: red;
}
.cl_add_two{
/
float: right;*/
color: blue;
}
</style>
</head>
<body>
<div class="cl_all">
<div class="cl_chat_all">
<div class="cl_son_all">

<div class="cl_new_span"></div>
</div>
</div>
<div class="cl_btn_all">
<input type="text" class="cl_sen_txt" placeholder="說點(diǎn)啥紊婉。。德召。" />
<div class="cl_sen_btn">發(fā)送</div>
</div>
</div>
<script type="text/javascript">
var websocket = new WebSocket("ws://localhost:3000/");
function showMessage(str , type) {
var div =document.createElement("div");
div.innerHTML=str;
if(type == "enter"){
div.className="cl_add_one";
}else if(type == "leave") {
div.className="cl_add_two";
}
var news = document.getElementsByClassName("cl_new_span")[0];
news.appendChild(div);
}
websocket.onopen = function () {
document.getElementsByClassName("cl_sen_btn")[0].onclick = function () {
var txt =document.getElementsByClassName("cl_sen_txt")[0].value;
if(txt){
websocket.send(txt)
}
}
};
websocket.onclose = function () {
// console.log("onclose")
};
websocket.onmessage = function (e) {
var mes =JSON.parse(e.data);
showMessage(mes.data,mes.type)
};
</script>
</body>
</html>

效果圖為:
WeChatf7a3580523d6f53c090e97a7479c1d48.png

如果有疑問 聯(lián)系微信:785605726

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末白魂,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子上岗,更是在濱河造成了極大的恐慌福荸,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肴掷,死亡現(xiàn)場離奇詭異敬锐,居然都是意外死亡背传,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進(jìn)店門台夺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來径玖,“玉大人,你說我怎么就攤上這事谒养⊥φ” “怎么了?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵买窟,是天一觀的道長丰泊。 經(jīng)常有香客問我,道長始绍,這世上最難降的妖魔是什么瞳购? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮亏推,結(jié)果婚禮上学赛,老公的妹妹穿的比我還像新娘。我一直安慰自己吞杭,他們只是感情好盏浇,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著芽狗,像睡著了一般绢掰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上童擎,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天滴劲,我揣著相機(jī)與錄音,去河邊找鬼顾复。 笑死班挖,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的芯砸。 我是一名探鬼主播萧芙,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼假丧!你這毒婦竟也來了末购?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤虎谢,失蹤者是張志新(化名)和其女友劉穎盟榴,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體婴噩,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡擎场,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年羽德,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片迅办。...
    茶點(diǎn)故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡宅静,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出站欺,到底是詐尸還是另有隱情姨夹,我是刑警寧澤,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布矾策,位于F島的核電站磷账,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏贾虽。R本人自食惡果不足惜逃糟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一米诉、第九天 我趴在偏房一處隱蔽的房頂上張望雁仲。 院中可真熱鬧像寒,春花似錦诬垂、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽檐蚜。三九已至蟆技,卻和暖如春玩敏,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背付魔。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留飞蹂,地道東北人几苍。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像陈哑,于是被迫代替她去往敵國和親妻坝。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評論 2 354

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