基于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 相关文章推荐
根据鼠标的位置动态的控制层的位置
Nov 24 Javascript
javascript 定义新对象方法
Feb 20 Javascript
使图片旋转的3种解决方案
Nov 21 Javascript
5款JavaScript代码压缩工具推荐
Jul 07 Javascript
JavaScript生成随机数的4种自定义函数分享
Feb 28 Javascript
jQuery实现自动滚动到页面顶端的方法
May 22 Javascript
js实现三张图(文)片一起切换的banner焦点图
Aug 25 Javascript
js带前后翻页的图片切换效果代码分享
Sep 08 Javascript
基于JavaScript实现文字超出部分隐藏
Feb 29 Javascript
jQuery EasyUI编辑DataGrid用combobox实现多级联动
Aug 29 Javascript
JavaScript初学者必看“new”
Jun 12 Javascript
微信小程序移动拖拽视图-movable-view实例详解
Aug 17 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 download.php实现代码 跳转到下载文件(response.redirect)
2009/08/26 PHP
hadoop中一些常用的命令介绍
2013/06/19 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
2016/03/21 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
2017/07/03 PHP
php写入mysql中文乱码的实例解决方法
2019/09/17 PHP
基于Jquery的简单&简陋Tabs插件代码
2010/02/09 Javascript
原生js的弹出层且其内的窗口居中
2014/05/14 Javascript
jQuery过滤选择器详解
2015/01/13 Javascript
又一枚精彩的弹幕效果jQuery实现
2016/07/25 Javascript
JS中解决谷歌浏览器记住密码输入框颜色改变功能
2017/02/13 Javascript
微信小程序之数据双向绑定与数据操作
2017/05/12 Javascript
react 创建单例组件的方法
2018/04/26 Javascript
mpvue构建小程序的方法(步骤+地址)
2018/05/22 Javascript
node.js实现微信开发之获取用户授权
2019/03/18 Javascript
vue-cli3中vue.config.js配置教程详解
2019/05/29 Javascript
JavaScript经典案例之简易计算器
2020/08/24 Javascript
react实现复选框全选和反选组件效果
2020/08/25 Javascript
[02:50]【扭转乾坤,只此一招】DOTA2全新版本永雾林渊开启新篇章
2020/12/24 DOTA
Python实现句子翻译功能
2017/11/14 Python
pytz格式化北京时间多出6分钟问题的解决方法
2019/06/21 Python
python如何实现数据的线性拟合
2019/07/19 Python
python获取array中指定元素的示例
2019/11/26 Python
Django在Model保存前记录日志实例
2020/05/14 Python
HTML5之语义标签介绍
2016/07/07 HTML / CSS
Ray-Ban雷朋西班牙官网:全球领先的太阳眼镜品牌
2018/11/28 全球购物
给女朋友的道歉信
2014/01/10 职场文书
品质管理部岗位职责范文
2014/03/01 职场文书
高一学生评语大全
2014/04/25 职场文书
读书之星事迹材料
2014/05/12 职场文书
司法局群众路线教育实践活动整改措施思想汇报
2014/10/13 职场文书
团代会闭幕词
2015/01/28 职场文书
体育个人工作总结
2015/02/09 职场文书
如何使用flask将模型部署为服务
2021/05/13 Python
JS 基本概念详细介绍
2021/10/16 Javascript
Mongodb 迁移数据块的流程介绍分析
2022/04/18 MongoDB
win10蓝屏0xc0000001安全模式进不了怎么办?win10出现0xc0000001的解决方法
2022/08/05 数码科技