nodejs聊天项目

服务端代码

//1.引入框架
var express = require("express");
//创建服务
var app = express();
//创建http服务
var server = require('http').Server(app);
//创建socket.io服务
var io = require('socket.io')(server);
//设置静态资源
app.use(express.static('node_modules'));
//设置模板引擎
app.set('view engine','ejs');
//设置ejs模板路径
app.set('views','./views');
//设置路由
app.get("/",function(req,res){
	res.render('lts');
	res.end();
})

//监听端口
server.listen(8090);

//连接socket.io
io.on('connection',function(socket){
	socket.on('h556',function(data){
		//console.log(data);
		//将服务端的信息发送到聊天室中
		//broadcast 将接收到的所有信息广播出去
		socket.broadcast.emit('h556',data)
	})
})

 

客户端代码

<script>
	//连接
	var socket = io.connect("/");
	//定义一个名字
	var name = prompt('请输入您的名字');
	//给发送按钮绑定单击事件
	$('.send').click(function(){
		//alert(123);
		//获取文本域中输入的数据
		var v = $('textarea').val();
		//console.log(v);
		if(v==""){
			alert('发送的信息不能为空');
		}else{
			var me = $('#kuang .left').clone();
			me.find('.mc').html(name);
			me.find('.mn').html(v);
			//把克隆的节点放到top中
			$('.top').append(me);
			$('textarea').val('');
			socket.emit('h556',{name:name,data:v})
		}
		
	})
	//敲击回车发送消息
	$(window).keydown(function(e){
		//console.log(e);
		if(e.keyCode == 13){
			//发送消息(trigger函数:让左边的元素,执行一次指定的事件)
			$('.send').trigger('click');
			return false;
		}
	})
	socket.on('h556',function(data){
		console.log(data);
		var right = $('#kuang .right').clone();
		right.find('.oc').html(data.data);
		right.find('.cn').html(data.name);
		$('.top').append(right);
	})
	
</script>

 

<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<!-- 引入socket.io -->
	<script src="/socket.io/socket.io.js"></script>

	<script src="/jquery/dist/jquery.min.js"></script>

	<style>
		.max{
			width:50%;
			height:600px;
			margin:0px auto;
			margin-top:100px;
			border:10px solid #999;
			padding-top:10px;
		}
		.left{
			width:100%;
			border-bottom:1px solid #999;
			height:40px;
		}
		.right{
			width:100%;
			height:40px;
			border-bottom:1px solid #999;
		}
		.top{
			width: 100%;
			height:400px;
		}
		#kuang{
			display: none;
		}
		.l{
			float:left;
		}
		.r{
			float:right;
		}
	</style>
	<title>聊天室</title>	
</head>
<body>
	<button id="btn">点我啊</button>
	<div class="max">
		<!-- 聊天的区域 -->
		 <div class="top">
		 	
		 </div>
		<div>
			<textarea name="" id="" cols="98" rows="5"></textarea>
		</div>
		<div id="kuang">
			<div class="left">
				<span class="l mc"><b>海峰</b>:</span><span class="mn">宝贝~~想你了</span>
			</div>
			<div class="right">
				<span class="r oc">讨厌~死鬼!</span><span class="r cn"><b>牟楠:</b></span>
			</div>
		</div>
		<div>
			<button class="send">发送</button>
		</div>

		
	</div>
</body>

 


版权声明:本文为qq_38998319原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。