亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

express框架實現基于Websocket建立的簡易聊天室

2019-11-19 15:50:48
字體:
來源:轉載
供稿:網友

最近想寫點有意思的,所以整了個這個簡單的不太美觀的小玩意

首先你得確認你的電腦裝了node,然后就可以按照步驟 搞事情了~~

1.建立一個文件夾

2.清空當前文件夾地址欄,在文件夾地址欄中輸入cmd.exe

3.我們需要下載點小東西 ,需要在命令行輸入

  • npm install express 回車 等待一會
  • npm install express-session 回車 等待一會
  • npm install ejs 回車 等待一會
  • npm install socket.io 回車 等待一會 叮~~~ 搞定?。。?/li>

4.安裝完成后,在你建的文件夾下 就會有一個 node_modules文件夾,接下來我們還需要建立倆文件夾,一個文件夾(public)存放靜態資源,并且添加jquery文件,一個文件夾(views)存放靜態模板ejs文件。

5.接下來我們就需要建立一個入口文件(app.js),在你建立的文件夾下 。

6.app.js中必須寫的

var express=require('express');var app=express();//加載express web servervar http=require('http').Server(app);//加載websocket server-->http://localhost:3000/socket.io/socket.io.jsvar io=require('socket.io')(http);//監聽端口3000http.listen(3000);

7.(1)加載路由、處理路由、配置ejs模板、處理靜態資源管理器

app.get app.postapp.set("view engine","ejs");app.use(express.static('./public'));

(2)建立倆文件,index.ejs、chat.ejs,在chat.ejs下我們需要引入

<script src="/socket.io/socket.io.js"></script><script src="/jquery-1.12.4.js"></script>

如果你本地沒有的話,你可以這樣玩~~

咱可以引用在線的嘛(親測好使)

<script src="http://code.jquery.com/jquery-latest.js"></script>

8.app.get 路由 action=‘check'

判斷登陸的三個條件

1-不能為空

2-不能重名

3-注冊并且跳轉chat頁面

9.咱登陸了,要聊天,咱得告訴別人咱叫啥?。。?!所以這里需要處理session了,并且在chat頁面顯示出來嘛

10.所以咱得開始建立websocket通訊了

client

<script src="/socket.io/socket.io.js"></script><script src="/jquery-1.12.4.js"></script><script>   var socket=io();   socke.emit('事件名','數據'); 數據可以是對象(登陸者和內容)</script>

server

 io.on('connection',function(socket){  socket.on('事件名',function(data){    io.emit('新的事件名',data);  });});

client

socket.on('新的事件名',function(msg){     dom操作  把msg數據渲染給我們的dom結構})

基本的思路和步驟就是這些

現在一切工作準備就緒,開始碼代碼

app.js

var express=require('express');var app=express();var http=require('http').Server(app);var io=require('socket.io')(http);var session=require('express-session');app.use(session({ secret: 'keyboard cat', resave: false, saveUninitialized: true, //cookie: { secure: true }}));//模板引擎app.set("view engine","ejs");//靜態服務app.use(express.static('./public'));var alluser=[];//中間件//顯示首頁app.get('/',function(req,res,next){  res.render('index');});//確認登錄,檢查此人是否有用戶名 昵稱不能重復app.get('/check',function(req,res,next){  var yonghuming=req.query.yonghuming;  if(!yonghuming){    res.send('必須填寫用戶名');    return;  }  if(alluser.indexOf(yonghuming) != -1){    res.send('用戶名重名');    return;  }  alluser.push(yonghuming);  console.log(alluser);  req.session.yonghuming=yonghuming;  res.redirect("/chat");});//聊天室app.get('/chat',function(req,res,next){  //console.log(req.session.yonghuming);  //console.log(123);  if(!req.session.yonghuming){    res.redirect("/");    return;  }  res.render('chat',{    'yonghuming':req.session.yonghuming  });});io.on('connection',function(socket){  socket.on('liaotian',function(msg){    console.log(msg);    //io.emit('liaotian',msg);    //console.log(io);    io.emit('liaotian',msg);  });})//監聽端口http.listen(3000);console.log('server start port 3000');

index.ejs(放views文件夾下)

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <title>Document</title>  <style>    div{      width:700px;      height:30px;      padding:40px;      border:1px solid #000;      margin:0 auto;    }    #yonghuming{      font-size:30px;    }  </style></head><body>  <div>    <form action="/check" method="get">    輸入昵稱:    <input type="text" id="yonghuming" name="yonghuming">    <input type="submit" value="進入聊天室">    </form>  </div></body></html>

chat.ejs

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8"/>  <title>Document</title>  <style>    .caozuo{      position:fixed;      bottom:0;      left:0;      height:100px;      background-color:#eee;      width:100%;    }    .caozuo input{      font-size:30px;    }    .caozuo input[type=text]{      width:100%;    }  </style></head><body>  <h1>Edison聊天室<span id="yonghu"> 歡迎:<%=yonghuming %></span></h1>  <div>    <ul class="liebiao"></ul>  </div>  <div class="caozuo">  <input type="text" id="neirong"/>  <input type="button" id="fayan" value="發言"/>  </div>  <script src="/socket.io/socket.io.js"></script>  <script src="/jquery-1.12.4.min.js"></script>  <script>    var socket=io();    $('#neirong').keydown(function(e){      if(e.keyCode==13){            //回車發送消息        socket.emit('liaotian',{          'neirong':$('#neirong').val(),          'ren':$('#yonghu').html(),        });        $(this).val('');      }    });    /*    $("#fayan").click(function(){       //點擊發言按鈕發送消息      socket.emit('liaotian',{        'neirong':$('#neirong').val(),        'ren':$('#yonghu').html(),      });    });*/    socket.on('liaotian',function(msg){      $(".liebiao").prepend("<li><b>"+msg.ren+": </b>"+msg.neirong+"</li>");    });  </script></body></html>


聊天室登陸界面


edison進入聊天室


edison與chan聊天

在碼代碼過程中,不斷的踩坑,填坑,第一次整這玩意,很多地方不熟悉,難免有些錯誤,畢竟學習過程嘛,有點磕磣,如果你們也寫了好使了,咱可以共同進步一起美化,完善更多的功能,忘各位old鐵見諒~~~

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久午夜a级毛片| 欧美成人精品激情在线观看| 久久香蕉频线观| 中文字幕日韩高清| 日韩av在线影院| 欧美成人激情图片网| 欧美大片在线影院| 国产午夜精品一区二区三区| 日韩av第一页| 欧美日韩国产精品专区| 亚洲xxxx18| 亚洲欧美制服综合另类| 91久久久亚洲精品| 俺也去精品视频在线观看| 亚洲乱亚洲乱妇无码| 久久影视三级福利片| 亚洲情综合五月天| 欧美日韩国产精品| 色青青草原桃花久久综合| 国产精品久久久久久久久久新婚| 欧美成人精品在线观看| 久久久99免费视频| 亚洲无线码在线一区观看| 久久久av网站| 欧美精品videossex性护士| 亚洲人成网站777色婷婷| 91超碰caoporn97人人| 国产专区精品视频| 色伦专区97中文字幕| 色综合久久天天综线观看| 69av在线视频| 日韩av免费在线播放| 91香蕉嫩草神马影院在线观看| 另类天堂视频在线观看| 国产成人一区二区三区电影| 日韩在线一区二区三区免费视频| 成人网在线观看| 亚洲国产精品免费| 欧美激情视频播放| 一个人看的www欧美| 国产视频精品免费播放| 在线观看国产精品淫| 久久久国产精品一区| 久久99青青精品免费观看| 久久免费精品日本久久中文字幕| 中文字幕亚洲一区二区三区五十路| 精品爽片免费看久久| 日韩av影视综合网| 国产亚洲精品久久久久久牛牛| 国产精品日日做人人爱| 久久99亚洲精品| 日韩在线视频播放| 日韩成人在线视频观看| 日韩av在线影视| 久久亚洲综合国产精品99麻豆精品福利| 亚洲久久久久久久久久久| 久久国产精品电影| 久久免费成人精品视频| 欧美激情一级二级| 国产91网红主播在线观看| 成人情趣片在线观看免费| 日韩av一区在线观看| 久久精品中文字幕电影| 精品日韩视频在线观看| 色妞一区二区三区| 日韩av在线播放资源| 精品久久久久久中文字幕大豆网| 日韩激情视频在线| 欧美一级在线亚洲天堂| 日韩av毛片网| 欧美一级视频在线观看| 色诱女教师一区二区三区| 国产精品精品一区二区三区午夜版| 亚洲日韩第一页| 热re91久久精品国99热蜜臀| 国产精品自产拍在线观看中文| 欧美中文字幕精品| 91麻豆国产语对白在线观看| 亚洲男人天天操| 在线看欧美日韩| 亚洲欧美自拍一区| 91亚洲精华国产精华| 亚洲欧美中文字幕在线一区| 亚洲a在线观看| 欧美激情在线观看| 91精品久久久久久久久久久| 中文字幕亚洲国产| 国产精品91在线观看| 国产精品自在线| 欧美性xxxx极品hd满灌| 久操成人在线视频| 欧美在线观看日本一区| 国产精品久久久久久久久久久新郎| 久久精品久久久久电影| 日本精品在线视频| 精品国产一区二区三区久久| 国产精品视频免费在线| 精品久久久久久国产| 亚洲娇小xxxx欧美娇小| 久久视频在线直播| 亚洲国产精品999| 九九九久久久久久| 97超碰国产精品女人人人爽| 亚洲一区二区三区四区在线播放| 91av视频在线观看| 91中文字幕在线观看| 97在线视频免费| 国产精品久久久av| 国外成人免费在线播放| 日韩av一区二区在线观看| 国产精品专区h在线观看| 538国产精品一区二区免费视频| 国产精品视频男人的天堂| 欧美大肥婆大肥bbbbb| 亚洲第一天堂av| 蜜臀久久99精品久久久久久宅男| 久久天天躁狠狠躁夜夜爽蜜月| 欧美黑人xxxx| 欧美另类高清videos| 2020欧美日韩在线视频| 中文字幕久久久av一区| 亚洲欧洲日产国产网站| 欧美日韩在线观看视频| 欧美乱大交xxxxx另类电影| 欧美激情视频一区二区三区不卡| 国产精品自在线| 国产精品夫妻激情| 中文日韩在线视频| 国产精品久久97| 日韩a**站在线观看| 欧美噜噜久久久xxx| 中文字幕日韩欧美精品在线观看| 热99精品只有里视频精品| 怡红院精品视频| 国产精品激情av在线播放| 91精品视频在线看| 国产一区二区在线播放| 国产欧美婷婷中文| 综合激情国产一区| 国产精品丝袜久久久久久不卡| 久久久久久久999| 色七七影院综合| 91精品啪aⅴ在线观看国产| 精品国产欧美一区二区三区成人| 日韩少妇与小伙激情| 国产精品女视频| 国产精品91久久久久久| 欧美性生交xxxxxdddd| 亚洲第一精品自拍| 国产精品三级美女白浆呻吟| www亚洲欧美| 亚洲电影成人av99爱色| 国产成人亚洲综合青青| 最近2019年好看中文字幕视频| 欧美中文字幕在线视频| 一区二区国产精品视频| 91久久久久久久| 亚洲高清免费观看高清完整版| 亚洲女在线观看| 国产精品福利在线观看网址| 欧美日韩美女视频| 国产精品中文字幕在线| 日本成人黄色片| 久久久久久久激情视频|