基于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 相关文章推荐
javascript web页面刷新的方法收集
Jul 02 Javascript
基于jquery的文章中所有图片width大小批量设置方法
Aug 01 Javascript
js操作模态窗口及父子窗口间相互传值示例
Jun 09 Javascript
jQuery老黄历完整实现方法
Jan 16 Javascript
web前端开发JQuery常用实例代码片段(50个)
Aug 28 Javascript
详解angular2采用自定义指令(Directive)方式加载jquery插件
Feb 09 Javascript
BootStrap 导航条实例代码
May 18 Javascript
vue2.0与bootstrap3实现列表分页效果
Nov 28 Javascript
详解vue.js数据传递以及数据分发slot
Jan 20 Javascript
vue中的ref和$refs的使用
Nov 22 Javascript
node省市区三级数据性能测评实例分析
Nov 06 Javascript
electron+vue实现div contenteditable截图功能
Jan 07 Javascript
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函数解决SQL injection
2006/10/09 PHP
用PHP的ob_start();控制您的浏览器cache!
2006/11/25 PHP
PHP里的中文变量说明
2011/07/23 PHP
PHP JS Ip地址及域名格式检测代码
2013/09/27 PHP
浅析PHP中strlen和mb_strlen的区别
2014/08/31 PHP
浅析Yii2 gridview实现批量删除教程
2016/04/22 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
十个优秀的Ajax/Javascript实例网站收集
2010/03/31 Javascript
javascript new fun的执行过程
2010/08/05 Javascript
三级下拉菜单的js实现代码
2011/05/23 Javascript
用Jquery.load载入页面后样式没了页面混乱的解决方法
2014/10/20 Javascript
Javascript毫秒数用法实例
2015/02/05 Javascript
JS实现点击颜色块切换指定区域背景颜色的方法
2015/02/25 Javascript
javascript实现简单的省市区三级联动
2015/05/14 Javascript
JS Canvas定时器模拟动态加载动画
2016/09/17 Javascript
jQuery实现花式轮播之圣诞节礼物传送效果
2016/12/25 Javascript
详解vue-cli官方脚手架配置
2018/07/20 Javascript
jQuery+css last-child实现选择最后一个子元素操作示例
2018/12/10 jQuery
vuex+axios+element-ui实现页面请求loading操作示例
2020/02/02 Javascript
ES6箭头函数和扩展实例分析
2020/05/23 Javascript
Python subprocess模块详细解读
2018/01/29 Python
python 除法保留两位小数点的方法
2018/07/16 Python
python使用tomorrow实现多线程的例子
2019/07/20 Python
Python使用微信接入图灵机器人过程解析
2019/11/04 Python
pandas-resample按时间聚合实例
2019/12/27 Python
Python中Selenium库使用教程详解
2020/07/23 Python
django创建css文件夹的具体方法
2020/07/31 Python
python如何操作mysql
2020/08/17 Python
利用python爬取有道词典的方法
2020/12/08 Python
Python调用高德API实现批量地址转经纬度并写入表格的功能
2021/01/12 Python
CSS3实现类似翻书效果的过渡动画的示例代码
2019/09/06 HTML / CSS
迪斯尼商品官方网站:ShopDisney
2016/08/01 全球购物
Styleonme中文网:韩国高档人气品牌
2017/06/21 全球购物
代码中finally中的代码会不会执行
2012/02/06 面试题
优秀毕业生推荐信
2013/11/02 职场文书
大学班长的职责
2014/01/27 职场文书