基于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 相关文章推荐
点击文章内容处弹出页面代码
Oct 01 Javascript
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
Jul 31 Javascript
Jquery实现弹性滑块滑动选择数值插件
Aug 08 Javascript
7个jQuery最佳实践
Jan 12 Javascript
jQuery实现花式轮播之圣诞节礼物传送效果
Dec 25 Javascript
jQuery学习之DOM节点的插入方法总结
Jan 22 Javascript
webpack4 CSS Tree Shaking的使用
Sep 03 Javascript
浅析vue插槽和作用域插槽的理解
Apr 22 Javascript
vue router总结 $router和$route及router与 router与route区别
Jul 05 Javascript
webpack安装配置与常见使用过程详解(结合vue)
Jun 01 Javascript
Java 生成随机字符的示例代码
Jan 13 Javascript
Vue实现跑马灯样式文字横向滚动
Nov 23 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 多维数组排序(usort,uasort)
2010/06/30 PHP
Windows下的PHP安装pear教程
2014/10/24 PHP
php表单习惯用的正则表达式
2017/10/11 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
jquery 表单取值常用代码
2009/12/22 Javascript
JavaScript去掉数组中的重复元素
2011/01/13 Javascript
json的定义、标准格式及json字符串检验
2014/05/11 Javascript
让IE8浏览器支持function.bind()方法
2014/10/16 Javascript
Javascript中Array用法实例分析
2015/06/13 Javascript
javascript拖拽应用实例
2016/03/25 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
2016/03/28 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
2016/06/27 Javascript
js 点击a标签 获取a的自定义属性方法
2016/11/21 Javascript
jQuery插件ContextMenu自定义图标
2017/03/15 Javascript
基于jQuery的表单填充实例
2017/08/22 jQuery
Vue实现active点击切换方法
2018/03/16 Javascript
p5.js入门教程之键盘交互
2018/03/19 Javascript
详解Vue单元测试case写法
2018/05/24 Javascript
jquery无缝图片轮播组件封装
2020/11/25 jQuery
微信小程序使用车牌号输入法的示例代码
2019/08/20 Javascript
jQuery设置下拉框显示与隐藏效果的方法分析
2019/09/15 jQuery
Python中的闭包实例详解
2014/08/29 Python
零基础写python爬虫之神器正则表达式
2014/11/06 Python
使用Python的PEAK来适配协议的教程
2015/04/14 Python
Python实现的购物车功能示例
2018/02/11 Python
彻底理解Python中的yield关键字
2019/04/01 Python
Python read函数按字节(字符)读取文件的实现
2019/07/03 Python
Python在cmd上打印彩色文字实现过程详解
2019/08/07 Python
python读取多层嵌套文件夹中的文件实例
2020/02/27 Python
ubuntu 安装pyqt5和卸载pyQt5的方法
2020/03/24 Python
SteelSeries赛睿官网:游戏外设和配件的领先制造商(耳机、键盘、鼠标和鼠标垫)
2018/06/17 全球购物
类的返射机制中的包及核心类
2016/09/12 面试题
计算机系毕业生推荐信
2013/11/06 职场文书
《北京的春节》教学反思
2014/04/07 职场文书
党员身份证明材料
2015/06/19 职场文书
SONY AN-LP1 短波有源天线放大器
2021/04/22 无线电