Socket聊天邏輯

 

         一、A發送消息到服務器服務器

         二、服務器接收到消息後會給全部用戶發送這條消息ui

         三、若是有用戶斷開鏈接,則不用給此用戶發送server

1、建立持久性鏈接服務器  net,設置其端口號爲9000字符串

const net = require(「net」);input

const server = net.creatServer();it

server.listen(9000);io

2、當用戶鏈接到服務器之後console

         server.on("connection",(client)=>{})require

3、存儲下全部的用戶cli

         const clients = [];

         clients.push(client);

4、給用戶編號,斷開鏈接後刪除

         client.id = clients.length;

         4.1 建立client.js文件,鏈接到服務器

                  const net = require("net");

                  const client = new net.Socket();

                  client.connect(9000,"127.0.0.1",()=>{

});

                  4.1.1 接受服務器傳遞過來的消息

                          client.on("data",(data)=>{

        console.log(data)

    })

         4.2 接收客戶端傳遞過來的消息

                  client.on("data",(data)=>{

    })

                  4.2.1將buffer文件轉換爲字符串

                          client.setEncoding("utf8")

                  4.2.2而後將這個消息發送給全部的用戶   

                                  clients.map((item)=>{

            if(item){

                item.write(data);

            }

        })

          client.on("close",()=>{

        clients[client.id] = null;

})

5、建立文件的讀寫流

         const readline = require("readline");

         const rl = readline.createInterface({

    input:process.stdin,

    output:process.stdout

})

         rl.on("line",(text)=>{

    //發送消息

    client.write(text);

})

相關文章
相關標籤/搜索