分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

nodejs实现在线聊天室

发布时间:2023-09-06 02:12责任编辑:傅花花关键词:jsnodejs

源码地址:https://github.com/qmdx00/AszedRoom/tree/master/Aszed

上线地址:http://119.23.243.252:3000/

求star QAQ

用到的技术:express做后端服务,bootstrap实现前端ui,socket.io做服务端和客户端的通信,mongodb存储数据。

首先用express工具创建express项目,目录结构如下:

阿里云短信服务:https://dysms.console.aliyun.com/dysms.htm?spm=5176.2020520001.aliyun_sidebar.138.836e4bd3Ddkpdu#/overview

注册并申请签名和模板。

在config里面创建smsConfig.js文件用来导出AccessKeyID和AccessKeySecret

再创建dbConfig.js导出mongodb的url和配置。

在socket文件夹中创建server.js

导出io监听,在www启动文件中监听服务端

用mongoose模块操作mongodb数据库,创建Schema再创建model,通过model创建实例,例如注册功能的实现

再schemas文件夹中创建userSchema.js

const mongoose = require(‘mongoose‘);module.exports = new mongoose.Schema({ ???userName: { ???????type: String, ???????unique: true ???}, ???userPwd: { ???????type: String ???}, ???userPhone: { ???????type: String, ???????unique: true ???}, ???created: { ???????type: Date, ???????default: Date.now() ???}}, { ???versionKey: false});

在models文件夹中创建对应的userModel.js

const mongoose = require(‘mongoose‘);const userSchema = require(‘../schemas/userSchema‘);module.exports = mongoose.model(‘user‘, userSchema);

即可在路由中处理user用户模型。

在utils中创建util.js用来操作数据库,导出为一个对象

即可通过导出直接使用该方法。再添加路由逻辑即可。

验证码的逻辑:

后端生成随机的六位数的验证码,通过短信发送到用户手机,同时发送一份加密过的到客户端,通过加密用户输入的验证码匹配接受的后端加密后的验证码是否相等来判断验证码的正误。

在线人数统计逻辑:

处理socket.io的客户端连接方法,每连接一个客户端先获取cookie判断用户身份,再便利online数组查找是否在数组内,不在就push进去,再更新mongodb。

nodejs实现在线聊天室

原文地址:https://www.cnblogs.com/qmdx00/p/9542309.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved