使用WebSocket写一个简易的聊天室

下载socket.io库

cnpm i socket.io

socket.io是Node.js中一个跨浏览器支持WebSocket的实时通讯的JS库(http://socket.io/docs/)。socket.io提供了基于事件的实时双向通讯,它同时提供了服务端和客户端的API。

使用Node.js实现服务端

因为WebSocket要依赖于http协议,所以首先引入http和socket.io库这两个库,并且要首先创建一个http服务,并且将生成的sever作为socket.io的参数。并建立连接。

const http=require('http');
const io=require('socket.io');

let httpServer=http.createServer((req,res)=>{

});
httpServer.listen(8080);
let wsServer=io.listen(httpServer);

当连接建立成功之时,服务端会监听到connection事件,当断开连接时,服务器会监听到disconnection事件

let aSock=[]
wsServer.on('connection',sock=>{
  // sock.emit;
  // sock.on;
  aSock.push(sock);
  //删除已断开的sock
  sock.on('disconnect',()=>{
    let n=aSock.indexOf(sock)
    console.log(n);
    if(n!=-1){
      aSock.splice(n,1)
    }
  })
  sock.on('msg',str=>{
    aSock.forEach(s=>{
      //判断是不是发送数据的客户端
      if(s!=sock){
        s.emit('msg',str);
      }
    })
  })
});

当连接建立成功之时,客户端会监听到connect事件,当断开连接时,客户端会监听到disconnection事件




  
  Document
  
  
  
  
  


  
无法连接到服务器,请检查网络

    最终结果如下,通过WebSocket实现的一个简单的聊天室就完成了

    使用WebSocket写一个简易的聊天室_第1张图片

    你可能感兴趣的:(WebSocket,NodeJs,JavaScript)