基于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 相关文章推荐
js工具方法弹出蒙版
May 08 Javascript
css样式标签和js语法属性区别
Nov 06 Javascript
js中日期的加减法
May 06 Javascript
ajax如何实现页面局部跳转与结果返回
Aug 24 Javascript
快速实现JS图片懒加载(可视区域加载)示例代码
Jan 04 Javascript
基于JavaScript中字符串的match与replace方法(详解)
Dec 04 Javascript
ES6下子组件调用父组件的方法(推荐)
Feb 23 Javascript
vue对storejs获取的数据进行处理时遇到的几种问题小结
Mar 20 Javascript
vue中通过使用$attrs实现组件之间的数据传递功能
Sep 01 Javascript
浅谈Vue SSR中的Bundle的具有使用
Nov 21 Javascript
javascript实现多边形碰撞检测
Oct 24 Javascript
如何在Vue项目中添加接口监听遮罩
Jan 25 Vue.js
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定义数组和使用示例(php数组的定义方法)
2014/03/29 PHP
Yii+MYSQL锁表防止并发情况下重复数据的方法
2016/07/14 PHP
浅析php如何实现App常用的秒发功能
2016/08/03 PHP
修改yii2.0用户登录使用的user表为其它的表实现方法(推荐)
2017/08/01 PHP
关于IE中getElementsByClassName不能用的问题解决方法
2013/08/26 Javascript
jquery获取节点名称
2015/04/26 Javascript
javascript实现淡蓝色的鼠标拖动选择框实例
2015/05/09 Javascript
jquery合并表格中相同文本的相邻单元格
2015/07/17 Javascript
javascript控制层显示或隐藏的方法
2015/07/22 Javascript
一分钟理解js闭包
2016/05/04 Javascript
jQuery防止重复绑定事件的解决方法
2016/05/14 Javascript
AngularJS入门教程之双向绑定详解
2016/08/18 Javascript
vue component组件使用方法详解
2017/07/14 Javascript
vue中简单弹框dialog的实现方法
2018/02/26 Javascript
vue注册组件的几种方式总结
2018/03/08 Javascript
vue如何判断dom的class
2018/04/26 Javascript
详解Angular中通过$location获取地址栏的参数
2018/08/02 Javascript
小试小程序云开发(小结)
2019/06/06 Javascript
微信域名检测接口调用演示步骤(含PHP、Python)
2019/12/08 Javascript
js编写简易的计算器
2020/07/29 Javascript
[03:13]DOTA2-DPC中国联赛1月25日Recap集锦
2021/03/11 DOTA
Python实现聊天机器人的示例代码
2018/07/09 Python
Python实现的KMeans聚类算法实例分析
2018/12/29 Python
在python plt图表中文字大小调节的方法
2019/07/08 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
2019/08/09 Python
Python操作多维数组输出和矩阵运算示例
2019/11/28 Python
Django中FilePathField字段的用法
2020/05/21 Python
HTML5 video 上传预览图片视频如何设置、预览视频某秒的海报帧
2018/08/28 HTML / CSS
学生喝酒检讨书
2014/02/06 职场文书
《九色鹿》教学反思
2014/02/27 职场文书
十八大标语口号
2014/10/09 职场文书
投标邀请书范本
2015/02/02 职场文书
亚布力滑雪场导游词
2015/02/09 职场文书
结婚老公保证书
2015/02/26 职场文书
学习弘扬焦裕禄精神心得体会
2016/01/23 职场文书
JavaCV实现照片马赛克效果
2022/01/22 Java/Android