基于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 相关文章推荐
jQuery 解析xml文件
Aug 09 Javascript
动态获取复选框checkbox选中个数的jquery代码
Jun 25 Javascript
Jquery操作下拉框(DropDownList)实现取值赋值
Aug 13 Javascript
jQuery实现的Div窗口震动特效
Jun 09 Javascript
js实现有时间限制消失的图片方法
Feb 27 Javascript
基于jquery实现智能提示控件intellSeach.js
Mar 17 Javascript
AngularJS使用自定义指令替代ng-repeat的方法
Sep 17 Javascript
详解如何使用webpack在vue项目中写jsx语法
Nov 08 Javascript
修改UA在PC中访问只能在微信中打开的链接方法
Nov 27 Javascript
微信小程序实现验证码获取倒计时效果
Feb 08 Javascript
使用Vue组件实现一个简单弹窗效果
Apr 23 Javascript
Vue实现PC端靠边悬浮球的代码
May 09 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
Smarty foreach控制循环次数的实现详解
2013/07/03 PHP
PHP实现根据浏览器跳转不同语言页面代码
2013/08/02 PHP
php 变量引用与变量销毁机制详细介绍
2016/12/05 PHP
js获取div高度的代码
2008/08/09 Javascript
Javascript 布尔型分析
2008/12/22 Javascript
JavaScript Array扩展实现代码
2009/10/14 Javascript
Jquey拖拽控件Draggable使用方法(asp.net环境)
2010/09/28 Javascript
html超链接打开窗口大小的方法
2013/03/05 Javascript
基于jquery的文章中所有图片width大小批量设置方法
2013/08/01 Javascript
jQuery元素选择器用法实例
2014/12/23 Javascript
script标签属性用type还是language
2015/01/21 Javascript
JQuery中ajax方法访问web服务实例
2015/07/18 Javascript
基于jquery实现全屏滚动效果
2015/11/26 Javascript
JavaScript实现刷新不重记的倒计时
2016/08/10 Javascript
Angularjs实现mvvm式的选项卡示例代码
2016/09/08 Javascript
DOM 事件的深入浅出(一)
2016/12/05 Javascript
js学习总结之DOM2兼容处理顺序问题的解决方法
2017/07/27 Javascript
浅谈Vue数据响应思路之数组
2018/11/06 Javascript
js简单的分页器插件代码实例
2019/09/11 Javascript
vscode中的vue项目报错Property ‘xxx‘ does not exist on type ‘CombinedVueInstance<{ readyOnly...Vetur(2339)
2020/09/11 Javascript
[28:42]Ti4正赛VG vs NEWBEE1
2014/07/19 DOTA
[04:05]TI9战队采访 - Natus Vincere
2019/08/22 DOTA
Python编程对列表中字典元素进行排序的方法详解
2017/05/26 Python
python3+PyQt5实现拖放功能
2018/04/24 Python
Django实现登录随机验证码的示例代码
2018/06/20 Python
python图像和办公文档处理总结
2019/05/28 Python
PyCharm中如何直接使用Anaconda已安装的库
2020/05/28 Python
Python使用paramiko连接远程服务器执行Shell命令的实现
2021/03/04 Python
Abbacino官网:包、钱包和女士配饰
2019/04/15 全球购物
大专生自我鉴定范文
2013/10/01 职场文书
党员反对四风问题思想汇报
2014/09/12 职场文书
党员民主生活会整改措施
2014/09/26 职场文书
工作业绩不及格检讨书
2014/10/28 职场文书
党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
MySQL子查询中order by不生效问题的解决方法
2021/08/02 MySQL
Anaconda配置各版本Pytorch的实现
2021/08/07 Python