基于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 相关文章推荐
JsEasy简介 JsEasy是什么?与下载
Mar 07 Javascript
使用TextRange获取输入框中光标的位置的代码
Mar 08 Javascript
JavaScript中的View-Model使用介绍
Aug 11 Javascript
jquery的总体架构分析及实现示例详解
Nov 08 Javascript
JS访问SWF的函数用法实例
Jul 01 Javascript
使用jQuery获取data-的自定义属性
Nov 10 Javascript
Bootstrap每天必学之导航
Nov 26 Javascript
javascript冒泡排序小结
Apr 10 Javascript
老生常谈onBlur事件与onfocus事件(js)
Jul 09 Javascript
JS扩展类,克隆对象与混合类实例分析
Nov 26 Javascript
node删除、复制文件或文件夹示例代码
Aug 13 Javascript
vue如何使用rem适配
Feb 06 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分页显示制作详细讲解
2006/12/05 PHP
手把手编写PHP框架 深入了解MVC运行流程
2016/09/19 PHP
php中序列化与反序列化详解
2017/02/13 PHP
jquery-syntax动态语法着色示例代码
2014/05/14 Javascript
javascript实现避免页面按钮重复提交
2015/01/08 Javascript
jQuery事件绑定与解除绑定实现方法
2015/04/15 Javascript
jquery简单实现幻灯片的方法
2015/08/03 Javascript
JavaScript实现算术平方根算法-代码超简单
2015/09/11 Javascript
JQuery标签页效果的两个实例讲解(4)
2015/09/17 Javascript
JS onkeypress兼容性写法详解
2016/04/27 Javascript
老生常谈 关于JavaScript的类的继承
2016/06/24 Javascript
全面了解JavaScirpt 的垃圾(garbage collection)回收机制
2016/07/11 Javascript
BootStrap Table对前台页面表格的支持实例讲解
2016/12/22 Javascript
详解微信小程序——自定义圆形进度条
2016/12/29 Javascript
详解通过源码解析Node.js中cluster模块的主要功能实现
2018/05/16 Javascript
vue2.0中set添加属性后视图不能更新的解决办法
2019/02/22 Javascript
JS块级作用域和私有变量实例分析
2019/05/11 Javascript
Vue开发环境中修改端口号的实现方法
2019/08/15 Javascript
jquery将json转为数据字典的实例代码
2019/10/11 jQuery
快速查询Python文档方法分享
2017/12/27 Python
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
解决Python正则表达式匹配反斜杠''\''问题
2019/07/17 Python
Python figure参数及subplot子图绘制代码
2020/04/18 Python
Django数据库迁移常见使用方法
2020/11/12 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
2020/11/28 Python
分享CSS3中必须要知道的10个顶级命令
2012/04/26 HTML / CSS
用HTML5制作一个简单的弹力球游戏
2015/05/12 HTML / CSS
canvas中普通动效与粒子动效的实现代码示例
2019/01/03 HTML / CSS
微软中国官方商城:Microsoft Store中国
2018/10/12 全球购物
override和overload的区别
2016/03/09 面试题
中学生自我鉴定
2014/02/04 职场文书
弘扬焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
个人批评与自我批评范文
2014/10/17 职场文书
Spring Cloud Gateway去掉url前缀
2021/07/15 Java/Android
python开发的自动化运维工具ansible详解
2021/08/07 Python
Python matplotlib可视化之绘制韦恩图
2022/02/24 Python