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

在线地址观看

http://www.chenleiming.com/vuechat

github地址

https://github.com/clm960227/...

有喜欢的小哥哥,小姐姐请反手来个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 + '离开了房间')})

vue.js+socket.io+express+mongodb打造在线聊天[一]相关推荐

  1. Vue全家桶+Socket.io+Express/Koa2打造网页版手机QQ

    Vue全家桶+Socket.io+Express/Koa2打造的网页版手机QQ(web app),高仿手机QQ7.1.0版本.为了方便大家学习,现在IP定位接口和实时气温接口也开放了!接口请在源码中查 ...

  2. vue.js+socket.io打造一个好玩的新闻社区

    title: Socket.io+vue打造新闻社区 date: 2017-06-12 20:19:05 tags: [vue.js,javascript,socket.io] vue2.0 + so ...

  3. 使用JS+socket.io+WebRTC+nodejs+express搭建一个简易版远程视频聊天

    目录 WebRTC 代码原理及流程 源码:git@gitee.com:DieHunter/myCode.git仓库:myCode/videoSteam 前端 先附上HTML和CSS 完整的socket ...

  4. socket.io简单说明及在线抽奖demo

    socket.io简单说明及在线抽奖demo socket.io 简介 Socket.IO可以实现实时双向的基于事件的通信. 它适用于各种平台,浏览器或设备,也同样注重可靠性和速度. socket.i ...

  5. 使用Node.js+Socket.IO搭建WebSocket实时应用

    Web领域的实时推送技术,也被称作Realtime技术.这种技术要达到的目的是让用户不需要刷新浏览器就可以获得实时更新.它有着广泛的应用场景,比如在线聊天室.在线客服系统.评论系统.WebIM等. 作 ...

  6. 视频教程-Node.JS - socket.io教程-Node.js

    Node.JS - socket.io教程 全栈开发工程师,现职于北京一家学院的全栈教学主任. 8年前端开发经验.4年移动端开发经验.4年UI设计经验.3年一线教学经验. 精通Node.JS.PHP. ...

  7. 在线白板,基于socket.io的多人在线协作工具

    为什么80%的码农都做不了架构师?>>>    首发:个人博客,更新&纠错&回复 是昨天这篇博文留的尾巴,socket.io库的使用练习,成品地址在这里. 代码已经上 ...

  8. Nodejs+socket.io 搭建个人的网页聊天室

    Nodejs+socket.io 搭建个人的网页聊天室 最近看到别人搭建了自己的实时聊天室便产生了兴趣,于是乎自己也着手搭建了一个.在socket这里我选用了socket.io这个模块,在网上看了很多 ...

  9. 使用nettyio+socket.io搭建简单的网页聊天室

    使用nettyio+socket.io搭建简单的网页聊天室 1 目录结构 2 maven 依赖配置 <project xmlns="http://maven.apache.org/PO ...

最新文章

  1. 浏览器兼容编码与解码的问题
  2. php gd 缩略图,[PHP GD库]①0--缩略图封装
  3. 数据工程师妹子养成手记——数据库篇
  4. mysql存储引擎简介
  5. leetcode 452. Minimum Number of Arrows to Burst Balloons | 452. 用最少数量的箭引爆气球(左程云:最大线段重合问题)
  6. XCTF_Web_新手练习区:simple_php
  7. cascade rcnn论文总结
  8. 关于CI框架引入CSS与JS文件
  9. mysql 5.1 db2i_DB2 9.5.0.0升级至9.5.0.9(小版本升级)
  10. Ubuntu安装Python的相对简单方法
  11. (原創) 有限狀態機FSM coding style整理 (SOC) (Verilog)
  12. 交换机cad图例_各种弱电系统的CAD图纸,包含图例、大样图、系统图及原理图等...
  13. mysql关系范式试题_数据库范式练习题
  14. 小伙用Python 分析了 20 万场吃鸡数据
  15. Linux添加PCF8563 RTC支持
  16. 初学者在VMware上搭建自己的CentOS8
  17. 2021-2027全球与中国医疗物联网服务市场现状及未来发展趋势
  18. OVER(PARTITION BY)函数介绍(oracle数据库)
  19. 伪码捕获matlab,直接序列扩频伪码捕获的matlab仿真
  20. 以太坊系列 - 智能合约开发与调试

热门文章

  1. 黑鲨怎么修改服务器,黑鲨自定义安装系统教程图解
  2. 自定义View之MultiStateView根据不同状态显示不同布局的View(雷惊风)
  3. 图灵测试是人工智能的标准吗?
  4. android5.0 应用闪退,【Android】MultiDex;NoClassDefFoundError;5.0以下系统应用闪退
  5. android 紫外线传感器,Arduino光线传感器-UV Sensor V1.0-ML8511紫外线传感器
  6. 【数学】树的重心的性质及其证明
  7. sap--TCODE 之 SE93 将事务代码分配给程序(转)
  8. 一筐梨子amp;一筐水果——协变性(covariant)
  9. base64的pdf编码转换成pdf文件转换之后一直打不开:未能加载pdf
  10. HDU - 1546 Idiomatic Phrases Game(dijkstra最短路)