HTML5 新特性 - WebSocket实现聊天(群聊天室、一对一聊天)
群聊天室
需求如下
在聊天界面中建立
websocket
连接.一个客户端发消息, 服务端接收消息后把消息分发给所有客户端.
客户端接收服务端发回来的消息, 打印.(显示在聊天记录区域)
提示当前在线人数.
服务端中一旦接收到客户端连接, 维护一个全局变量
count
, 记录当前在线人数(count++
)// 声明一个全局变量count, 用于保存当前在线人数 let count = 0 socketio.on('connection', (socket)=>{console.log('有客户端连进来了:'+socket.id)count++// 将count的值,给所有客户端都发一遍socketio.emit('countmsg', count)// .... })
当服务端发现有客户端断开连接就需要让
count--
// 监听socket连接的断开, 一旦连接断开, count--, 再给所有客户端发一遍 socket.on('disconnect', ()=>{count--socketio.emit('countmsg', count) })
无论
count
如何变化, 只要count
有变化就需要将count
实时发给所有客户端.客户端接收服务端发过来的消息
countmsg
. 将人数实时显示在页面中.// 监听服务端发给客户端的count消息 实时在线人数 更新界面 socket.on('countmsg', (data)=>{userNumber.innerHTML = data })
登录, 发消息时携带头像/昵称等参数.
一对一聊天的实现思路
客户端向服务端发送请求, 请求连接连接.
服务端一旦监听到连接的建立, 将连接对象与客户端id绑定在一起, 存起来.
客户端发消息时需要携带目标用户(发给谁):
{name: 'zs', to:'目标id', avatar:'a.jpg', content:'消息' }
服务端接收到消息后, 解析出目标用户(目标id), 找到当时存储的
socket
对象, 调用socket.emit()
单独给它发消息即可. 发消息时注意消息内容:{from:'zs', content:'内容', avatar:'a.jpg'}
HTML5 新特性 - WebSocket实现聊天(群聊天室、一对一聊天)相关推荐
- HTML中三维特性,前端进阶系列(三):HTML5新特性
HTML5 是对 HTML 标准的第五次修订.其主要的目标是将互联网语义化,以便更好地被人类和机器阅读,并同时提供更好地支持各种媒体的嵌入.HTML5 的语法是向后兼容的.现在国内普遍说的 H5 是包 ...
- html5储存类型特点,避免踩雷!你不得不知的 HTML5 “新”特性
什么是 HTML5 HTML的发展历程如下: 产生于1990年 1997年 HTML4 出现,成为互联网开发的标准 2008年,HTML5正式出现,2002年趋于稳定 HTML在发展过程中,HTML4 ...
- 【HTML5新特性】
HTML5新特性 一.语义标签 二.增强型表单 1. input特性 2. 五个表单元素 3. 表单属性 三.音频和视频 四.canvas 五.SVG 六.地理位置 七.拖放API 八.web Wor ...
- Html5新特性归纳
Html5新特性 文章目录 Html5新特性 一.简介 二.十大新特性 1.语义化结构化标签 1.section 2.header 3.footer 4.nav 5.article 6.aside 7 ...
- Html5新特性总览
Html5新特性总览 1.HTML5 新元素 标签 描述 < article> 定义页面独立的内容区域. < aside> 定义页面的侧边栏内容. < bdi> 定 ...
- html5新特性与用法大全了解一下
有好多小伙伴私聊我问我html5新特性 和用法,下面我给大家具体介绍一下html5都新加了哪些新特性,下面我给大家总结一下. 1)新的语义标签 footer header 等等 2)增强型表单 表单2 ...
- html5新特性表单控件,老生常谈h5新特性1:(表单)
老生常谈h5新特性1:(表单) HTML5新特性 -- 十大新特性 (1)新的语义标签和属性 (2)表单新特性 (3)视频和音频 (4)Canvas绘图 (5)SVG绘图 (6)地理定位 (7)拖放A ...
- HTML5新特性的学习笔记
HTML5新特性的学习笔记 HTML 超文本标记语言: HyperText Markup Language 这份学习笔记的主要内容是HTML5的新标签 基于菜鸟教程的个人向学习笔记 菜鸟教程 文章目录 ...
- html5新特性 gps,老生常谈H5新特性:地理定位
HTML5新特性 1.新的语义标签 2.表单2.0 3.视频和音频 4.Canvas绘图 5.SVG绘图 6.地理定位 7.拖放API 8.WebWorker 9.WebStorage 10.WebS ...
- HTML基础(一)--HTML5新特性和语义化
一.语义化概念 HTML5的语义化指的是合理正确的使用语义化标签来创建页面标签,正确的标签做正确的事,有利于SEO 二.语义化标签 header .nav.main(文档的主体).arcticle.s ...
最新文章
- poj1226 Substrings
- matlab 比例谐振控制器,比例谐振控制的一种实现(含代码)
- Android 观察系统中短信内容的变化(内容观察者)
- Android自定义Dialog及与Activity的交互
- 结构和类中字段的初始化以及用new来操作他们的构造函数
- 如何添加JWT生成的token在请求头中
- 性别有什么用_为啥不让男孩玩布娃娃?别让你的“性别偏见”,给孩子的人生设限...
- Linux 文件系统编程之系统调用和标准I/O库
- python实时数据流_python – 使用烧瓶web-app监控实时数据流
- k8s一个容器多个镜像_从零开始学K8s: 6.运行一个简单的容器
- editplus配置刷新
- 汇编指令大全及标志位
- 《穿越计算机的迷雾》第一版说明
- IE无法打开internet网站已终止操作的解决的方法
- CA服务器的搭建和申请证书
- 借助Grub4DOS的grldr启动Windows PE(软启动)
- 判定重大风险有哪几种_重大危险源判定
- mysql没开启binlog恢复删除表_无全量备份、未开启binlog日志,利用percona工具恢复delete的数据...
- android原生分享功能,Android原生分享到微博、微信等平台的实现方式
- 项目管理知识图谱(2)
热门文章
- 1041: 数列求和2 C语言
- OpenCV学习笔记-Shi-Tomasi角点检测
- php转html为pdf后部分图片无法显示
- 重磅来袭!这几款手机软件绝对的深入人心!
- 【现代密码学原理】——消息认证码(学习笔记)
- android实现自定义图标,Android开发中用Drawable 实现自定义电池图标
- 实现流程管理的五个步骤
- [django]梳理drf知识点
- 全国大学生软件测试大赛web应用测试,2017全国大学生软件测试大赛Web应用测试(团体)夏季预选赛入选名单...
- 计算机二级网页暂时无法连接,小编教你二级网页打不开怎么解决