1.index.js
var app = require('express')();
var express = require('express');
var Server = require('http').createServer(app);
var io = require('socket.io')(Server);
var path = require('path');
var Router = require('./Router');
//配置body-parser
var BodyParser = require('body-parser');
app.use(BodyParser.urlencoded({
extend: false}));
app.use(BodyParser.json());
//配置默认可以访问的静态资源目录
app.use('/views/',express.static(path.join(__dirname , './views')));
/*
配置使用 art-template 模板引擎,第一个参数表示,当渲染以 .art 结尾的文件的时候(也可以修改为其他后缀,如: .html ), 使用
art-template 模板引擎, express-art-template 是专门用来在 Express 中把art-template 整合到Express 中,原因在于 express-art-template 依赖了 art-template
*/
app.engine('html',require('express-art-template'));
//服务器监听端口
Server.listen(5000,() => {
console.log('Listening on *:5000');
});
//加载路由
app.use(Router);
//定义获取现在时间的函数
function Time(){
var D = new Date();
var Hours = D.getHours();
var Minutes = D.getMinutes();
var Seconds = D.getSeconds();
if(Minutes <10 && Minutes >=0 && Seconds < 10 && Seconds >= 0) {
return Hours + ':0' + Minutes + ':0'+Seconds ;
}
if(Minutes <10 && Minutes >=0 && Seconds > 10 ){
return Hours + ':0' + Minutes + ':' + Seconds ;
}
if(Minutes > 10 && Seconds < 10 && Seconds >= 0){
return Hours +':' + Minutes + ':0' + Seconds ;
}
return Hours + ':' + Minutes + ':' + Seconds;
}
var User = new Map(); //定义一个数组,登记相应用户的socket.id,便于通信
var count = 0 ; //定义一个变量用来维护当前在线人数
//socket信道内容处理
//处理登录信息
io.on('connection',(socket)=>{
var SaveName = Router.SaveName;
count++;
//上线通知,获取服务的Save数组里的用户数据
console.log(SaveName +' had connected!');
//socket通道连接后,向客户端发送在线用户数量
io.emit('online',{
count: count
})
//接收聊天信息
socket.on('chat',(msg)=>{
console.log( msg.Name + ': ——'+msg.Message);
User.set(socket.id,msg.Name); //存储用户与socket.id的关系
//除了发送者以外,连接到客户端的用户都可以收到这个信息
io.emit('Saying',{
data: msg.Message,
name: msg.Name , //表示当前信息是由哪个用户发出
time: Time(), //信息发送时间
src: msg.Anvarta
});
});
//用于渲染用户列表接收base64格式的图片,再群发给连接当前服务器用户
socket.on('ListAnvarta',(msg)=>{
io.emit('listAnvarta',{
Src: msg.Src,
Name: Sav
聊天室应用——jquery + node.js + websocket
最新推荐文章于 2023-09-12 20:30:00 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)