基于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插件之easing使用
Aug 19 Javascript
JavaScript小技巧 2.5 则
Sep 12 Javascript
你需要知道的10个最佳javascript开发实践小结
Apr 15 Javascript
js修改table中Td的值(定义td的单击事件)
Jan 10 Javascript
BootStrap智能表单实战系列(三)分块表单配置详解
Jun 13 Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
Jan 03 Javascript
微信小程序调用PHP后台接口 解析纯html文本
Jun 13 Javascript
js实现图片局部放大效果详解
Mar 18 Javascript
JS算法题之查找数字在数组中的索引位置
May 15 Javascript
nuxt框架中对vuex进行模块化设置的实现方法
Sep 06 Javascript
vue项目启动出现cannot GET /服务错误的解决方法
Apr 26 Javascript
vue-admin-template配置快捷导航的代码(标签导航栏)
Sep 04 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项目开发中用到的快速排序算法分析
2016/06/25 PHP
PHP依赖注入(DI)和控制反转(IoC)详解
2017/06/12 PHP
详解laravel passport OAuth2.0的4种模式
2019/11/04 PHP
angularJS中$apply()方法详解
2015/01/07 Javascript
jQuery应用之jQuery链用法实例
2015/01/19 Javascript
javascript实现相同事件名称,不同命名空间的调用方法
2015/06/26 Javascript
详解AngularJS Filter(过滤器)用法
2015/12/28 Javascript
JS三级可折叠菜单实现方法
2016/02/29 Javascript
js调用webservice构造SOAP进行身份验证
2016/04/27 Javascript
webpack教程之webpack.config.js配置文件
2017/07/05 Javascript
webpack之devtool详解
2018/02/10 Javascript
vue.js在标签属性中插入变量参数的方法
2018/03/06 Javascript
vue3.0 CLI - 2.6 - 组件的复用入门教程
2018/09/14 Javascript
NodeJS使用Range请求实现下载功能的方法示例
2018/10/12 NodeJs
react的滑动图片验证码组件的示例代码
2019/02/27 Javascript
vue中进行微博分享的实例讲解
2019/10/14 Javascript
js 执行上下文和作用域的相关总结
2021/02/08 Javascript
python教程之用py2exe将PY文件转成EXE文件
2014/06/12 Python
python爬虫获取小区经纬度以及结构化地址
2018/12/30 Python
Python根据URL地址下载文件并保存至对应目录的实现
2020/11/15 Python
python 简单的调用有道翻译
2020/11/25 Python
Gina Bacconi官网:吉娜贝康尼连衣裙和礼服
2018/04/24 全球购物
倩碧英国官网:Clinique英国
2018/08/10 全球购物
什么是网络协议
2016/04/07 面试题
自荐信模版
2013/10/24 职场文书
自荐书范文
2013/12/08 职场文书
中秋寄语大全
2014/04/11 职场文书
演讲稿开场白台词
2014/08/25 职场文书
作风大整顿心得体会
2014/09/10 职场文书
高一地理教学工作总结
2015/08/12 职场文书
win10下go mod配置方式
2021/04/25 Golang
使用pandas生成/读取csv文件的方法实例
2021/07/09 Python
java多态注意项小结
2021/10/16 Java/Android
JAVA SpringMVC实现自定义拦截器
2022/03/16 Python
Go获取两个时区的时间差
2022/04/20 Golang
zabbix配置nginx监控的实现
2022/05/25 Servers