基于vue和websocket的多人在线聊天室


Posted in Javascript onFebruary 01, 2020

最近看到一些关于websocket的东西,就决定写一个在线聊天室尝试一下。最终决定配合vue来写,采用了官方的vue脚手架vue-cli和官方的router,在本例中呢,我是用了CHAT这个对象来存储app的数据的,但后来一想,虽然项目很小,但如果用官方的vuex会更好,方便以后扩展,比如可以加上私信功能,可以在对方不在线的时候缓存发送的消息,这些都是可以的。(现在比较尴尬的就是,我把聊天室写好放到公众号号redream里,但是很少有人会同时在线,所以你会经常发现你进去的时候只有你一个人,就导致群聊不起来)

1.好吧,先来看一下我们的效果图

基于vue和websocket的多人在线聊天室

基于vue和websocket的多人在线聊天室

基于vue和websocket的多人在线聊天室

2.用到的一些东西

nodejs node服务器运行环境
express 搭建node服务器
websocket 本例核心,推送服务器消息到所有人
socketio websocket第三方库
vue + router 视图层双向数据绑定框架,用来简化开发、组件化开发的
es6语法 就是好用简洁哈哈
https 因为像websocket和很多h5的新功能,浏览器为了安全起见都仅支持https下开发 关于nodejs搭建express服务器可以看这里我就是在这里学的,代码里也借鉴了很多,关于搭建https服务器就不简介了,内容太多,推荐阿里云一年的免费证书,可以访问我的站点查看

3.代码架构简介

server里是需要运行在node服务器上的js文件,监听websocket连接
src/api/client是客户端连接服务器的核心js
src/components下是页面的组件。我分成了三大部分,login组件(登录页面),chat组件(聊天页面),groupinfo组件(群信息页面),其实是单页应用,反应速度更快,接近原生app,只不过用router联系在了一起。像chat组件,又又head、body、foot组件组成,组件化是很好的习惯和架构方式,条理清晰,而且在大项目里很多可以复用。 具体都在代码了,大家可以下载下来在本地跑一跑。

4.运行代码

install dependencies

npm install

serve with hot reload at localhost:8080
npm run dev

build for production with minification
npm run build

这是在我站点上跑着的例子,大家可以看一看,在手机上效果更加,最近校招比较忙,就花了两天,没考虑兼容,欢迎大家提出意见。

官方网址:https://github.com/secreter/websocket_chat

文件打包下载:vue_websocket_chat.zip

Javascript 相关文章推荐
JavaScipt基本教程之前言
Jan 16 Javascript
JavaScript arguments 多参传值函数
Oct 24 Javascript
关于jquery append() html时的小问题的解决方法
Dec 16 Javascript
运算符&&的三个不同层次
Apr 07 Javascript
详解JavaScript语法对{}处理的坑爹之处
Jun 05 Javascript
实例分析js和C#中使用正则表达式匹配a标签
Nov 26 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
Dec 31 Javascript
干货分享:让你分分钟学会javascript闭包
Dec 25 Javascript
jquery获取easyui日期控件的值实现方法
Nov 09 Javascript
js输入框使用正则表达式校验输入内容的实例
Feb 12 Javascript
微信小程序实现多个按钮toggle功能的实例
Jun 13 Javascript
jQuery实现的别踩白块小游戏完整示例
Jan 07 jQuery
node crawler如何添加promise支持
Feb 01 #Javascript
js 计算月/周的第一天和最后一天代码
Feb 01 #Javascript
js获取本日、本周、本月的时间代码
Feb 01 #Javascript
js 获取本周、上周、本月、上月、本季度、上季度的开始结束日期
Feb 01 #Javascript
vue学习笔记之过滤器的基本使用方法实例分析
Feb 01 #Javascript
vue学习笔记之slot插槽基本用法实例分析
Feb 01 #Javascript
vue学习笔记之作用域插槽实例分析
Feb 01 #Javascript
You might like
PHP脚本数据库功能详解(上)
2006/10/09 PHP
rrmdir php中递归删除目录及目录下的文件
2011/05/15 PHP
解析array splice的移除数组中指定键的值,返回一个新的数组
2013/07/02 PHP
提高PHP编程效率的方法
2013/11/07 PHP
PHP中执行cmd命令的方法
2014/10/11 PHP
php获取QQ头像并显示的方法
2014/12/23 PHP
PHP实现的浏览器检查类
2016/04/11 PHP
PHP实现数据四舍五入的方法小结【4种方法】
2019/03/27 PHP
妙用Jquery的val()方法
2012/06/27 Javascript
JavaScript图片放大技术(放大镜)实现代码分享
2013/11/14 Javascript
js 实现菜单左右滚动显示示例介绍
2013/11/21 Javascript
JavaScript使用Replace进行字符串替换的方法
2015/04/14 Javascript
jquery仿百度经验滑动切换浏览效果
2015/04/14 Javascript
Node.js批量给图片加水印的方法
2016/11/15 Javascript
AngularJS Select(选择框)使用详解
2017/01/18 Javascript
JS获得一个对象的所有属性和方法实例
2017/02/21 Javascript
js实现数字递增特效【仿支付宝我的财富】
2017/05/05 Javascript
微信小程序三级联动选择器使用方法
2020/05/19 Javascript
jQuery实现鼠标滑过商品小图片上显示对应大图片功能【测试可用】
2018/04/27 jQuery
解决vue 单文件组件中样式加载问题
2019/04/24 Javascript
javascript中可能用得到的全部的排序算法
2020/03/05 Javascript
Vue项目结合Vue-layer实现弹框式编辑功能(实例代码)
2020/03/11 Javascript
使用Vant完成Dialog弹框案例
2020/11/11 Javascript
关于Python 3中print函数的换行详解
2017/08/08 Python
python模块之paramiko实例代码
2018/01/31 Python
Python使用Dijkstra算法实现求解图中最短路径距离问题详解
2018/05/16 Python
Python实现微信好友的数据分析
2019/12/16 Python
Python namedtuple命名元组实现过程解析
2020/01/08 Python
美国机场停车位预订:About Airport Parking
2018/03/26 全球购物
软件设计的目标是什么
2016/12/04 面试题
车间班组长岗位职责
2013/11/13 职场文书
护士实习鉴定范文
2013/12/22 职场文书
大学四年的个人自我评价
2014/01/14 职场文书
视光学毕业生自荐书范文
2014/02/13 职场文书
建设办主任四风问题整改思路和措施
2014/09/20 职场文书
班级光棍节联谊会策划书
2014/10/10 职场文书