基于node.js打造一个简易的聊天室

1.先写服务端的代码
在服务端要先进行安装node环境,然后用npm install socket.io
要安装express框架

let http = require('http');
let fs = require('fs');
let ws = require('socket.io');
let express = require('express');
let app = express();//先进行express实例化
app.get('/',function(req,res){
	let html = fs.readFileSync('./clients.html');//同步读取文件
	res.end(html);
});
let server = http.createServer(app).listen(3001);//监听3001端口
let io = ws(server);//把scoket服务挂载到http服务器中,实例化
io.on('connection',function(socket){
	console.log('有新用户进入房间');
	scoket.on('message',function(mes){
		console.log(mes);
		io.emit('message',mes);//广播消息
	})
})

2.客户端这边进行连接

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>
    聊天室的客户端
</h1>
<form action="">
    <input type="text" name="" id="mes">
    <input type="button" name="" id="btn" value="send">
</form>
<script src="http://wulv5.com/js/socket.io.min.js"></script>
<script>
    //每一次打开客户端,就相当于连接了聊天室


    let socket = io.connect('/');//连接聊天室的io服务器
    let mes = document.getElementById('mes');
    let btn = document.getElementById('btn');
    let myMessage = '';
    btn.onclick = function () {
        let value = mes.value;
        if(!value){ //当消息为空时,

            return;
        }
        myMessage = value;
        socket.send(value); //把消息发送到服务端
        mes.value = '';//清空文本框

    }
    //当服务器广播消息时,触发message事件,消息内容在回调函数中
    socket.on('message',function (mm) {
        let p = document.createElement('p');
        p.innerHTML = mm;
        if(myMessage === mm){
            p.style.cssText = 'color:red;margin-left:10%';

        }
        document.body.appendChild(p);

    })
</script>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/weixin_42355871/article/details/84996025