博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue.js+socket.io+express+mongodb打造在线聊天室[一]
阅读量:6254 次
发布时间:2019-06-22

本文共 1785 字,大约阅读时间需要 5 分钟。

vue.js+socket.io+express+mongodb打造在线聊天

在线地址观看

有喜欢的小哥哥,小姐姐请反手来个star,谢谢!有issue的欢迎提出

介绍

本项目基于vue.js+socket.io+express+mongodb实现的聊天效果, 界面以及功能参考QQ,微信
技术栈

  • 前端: vue,vue-router,vuex,axios
  • 构建: webpack,vue-cli
  • 后端: express,multer(上传图片),cors(跨域处理), superagent(调用机器人接口),mongoose(操作数据库)
  • 通讯: socket.io
  • 数据库: mongodb
  • css预处理器: sass

功能列表

  • 用户注册
  • 用户登录
  • 群聊
  • 群聊中@小美 和机器人聊天 (注意@小美和消息中间要有空格)
  • 机器人聊天
  • 留言板

聊天代码

前端

// 聊天监听        this.socket.on('chat-msg', (msg) => {            this.MsgList.push(msg)            this.$nextTick(() => {                this.msgDOM.scrollTop = this.msgDOM.scrollHeight            })        })       // 发送消息       const MsgObj = {            roomId: this.roomId,            timeStamp: Date.parse(new Date()),            userId: this.getUserinfo.userId,            headPic: this.getUserinfo.headPic,            nickname: this.getUserinfo.nickname,            text: this.InputMsg        }        this.socket.emit('chat-msg', MsgObj)        this.InputMsg = ''

后端

// 进入房间    socket.on('join-room', (info) => {        // 添加到房间      socket.join(info.roomId)      io.to(info.roomId).emit('join-room', info.nickname)    })    // 群聊天  socket.on('chat-msg', (msg) => {    saveChatMsg(msg)    // 分割聊天消息,判断是否与机器人聊天    const msgArr = msg.text.split(' ')    if (msgArr[0] === '@小美') {      getRobotMsg({userId: msg.userId, roomId: msg.roomId, text: msgArr[1]}, (robotmsg) => {        saveChatMsg(robotmsg)        io.to(msg.roomId).emit('chat-msg', robotmsg)      })    }    io.to(msg.roomId).emit('chat-msg', msg)  })  // 机器人聊天  socket.on('robot-msg', (msg) => {    getRobotMsg({userId: msg.userId, text: msg.text}, (robotmsg) => {      socket.emit('robot-msg', robotmsg)    })  })  // 离开房间  socket.on('leave-room', (info) => {      socket.leave(info.roomId)      console.log(info.nickname + '离开了房间')  })

转载地址:http://ykfsa.baihongyu.com/

你可能感兴趣的文章
实验三
查看>>
水仙花数
查看>>
P3308 [SDOI2014]LIS(最小割+退流)
查看>>
C语言作业--数据类型
查看>>
压位高精
查看>>
jsp 中对jar 包的引用
查看>>
python操作mysql数据库
查看>>
Yii: gii 403 Error you are not allowed to access this page
查看>>
计算汉字长度
查看>>
Codeforces 911E - Stack Sorting
查看>>
BZOJ 1853: [Scoi2010]幸运数字
查看>>
基于敏捷的测试交付物通用设计
查看>>
BFS --- 素数环
查看>>
for循环每次取出一个字符(不是字节)
查看>>
linux版本选择
查看>>
不写for也能选中checkbox!
查看>>
PCIE_DMA:xapp1052学习笔记
查看>>
css
查看>>
Java规则引擎及JSR-94[转]
查看>>
【c学习-13】
查看>>