基于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实现状态限定编辑的代码
Feb 11 Javascript
jQuery 瀑布流 浮动布局(一)(延迟AJAX加载图片)
May 23 Javascript
javascript学习笔记(四) Number 数字类型
Jun 19 Javascript
用jquery仿做发微博功能示例
Apr 18 Javascript
AngularJS使用ngOption实现下拉列表的实例代码
Jan 23 Javascript
Angular使用操作事件指令ng-click传多个参数示例
Mar 27 Javascript
JS加密插件CryptoJS实现的DES加密示例
Aug 16 Javascript
浅谈Vue render函数在ElementUi中的应用
Sep 06 Javascript
零基础之Node.js搭建API服务器的详解
Mar 08 Javascript
Vue vm.$attrs使用场景详解
Mar 08 Javascript
详解node.js创建一个web服务器(Server)的详细步骤
Jan 15 Javascript
springboot+VUE实现登录注册
May 27 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 CURL post数据报错 failed creating formpost data
2016/10/16 PHP
用JQuery模仿淘宝的图片放大镜显示效果
2011/09/15 Javascript
javascript实现状态栏文字首尾相接循环滚动的方法
2015/07/22 Javascript
浅谈Javascript中的函数、this以及原型
2016/10/09 Javascript
jquery获取table指定行和列的数据方法(当前选中行、列)
2016/11/07 Javascript
工作中常用的js、jquery自定义扩展函数代码片段汇总
2016/12/22 Javascript
jQuery UI仿淘宝搜索下拉列表功能
2017/01/10 Javascript
touch.js 拖动、缩放、旋转 (鼠标手势)功能代码
2017/02/04 Javascript
手把手教你把nodejs部署到linux上跑出hello world
2017/06/19 NodeJs
详解vue axios中文文档
2017/09/12 Javascript
Puppeteer 爬取动态生成的网页实战
2018/11/14 Javascript
vue中音频wavesurfer.js的使用方法
2020/02/20 Vue.js
jQuery实现二级导航菜单的示例
2020/09/30 jQuery
用Python写的图片蜘蛛人代码
2012/08/27 Python
一个简单的python程序实例(通讯录)
2013/11/29 Python
python统计文本文件内单词数量的方法
2015/05/30 Python
Python运行报错UnicodeDecodeError的解决方法
2016/06/07 Python
遍历python字典几种方法总结(推荐)
2016/09/11 Python
python获取磁盘号下盘符步骤详解
2019/06/19 Python
Django  ORM 练习题及答案
2019/07/19 Python
python multiprocessing多进程变量共享与加锁的实现
2019/10/02 Python
python匿名函数的使用方法解析
2019/10/10 Python
Python tkinter实现图片标注功能(完整代码)
2019/12/08 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
2020/05/15 Python
学习Python需要哪些工具
2020/09/04 Python
Python虚拟环境的创建和使用详解
2020/09/07 Python
CSS3中动画属性transform、transition和animation属性的区别
2016/09/25 HTML / CSS
Calzedonia美国官网:意大利风格袜子、打底裤和沙滩装
2018/07/19 全球购物
中考冲刺决心书
2014/03/11 职场文书
先进事迹报告会主持词
2014/04/02 职场文书
计划生育标语
2014/06/23 职场文书
2015年党风廉政建设工作总结
2015/04/09 职场文书
民事申诉状范本
2015/05/20 职场文书
单位病假条范文
2015/08/17 职场文书
关于PostgreSQL JSONB的匹配和交集问题
2021/09/14 PostgreSQL
openEuler 搭建java开发环境的详细过程
2022/06/10 Servers