网页端即时通信应用消息列表的更新逻辑

一、目的

猜测BOSS直聘、智联招聘等网页端的消息列表逻辑。

二、发出新消息

1、输入框用HTML的<textarea>标签。

2、监听发送按钮。

3、触发发送按钮事件,用AJAX来请求服务器接口。

把会话ID、收件人ID和新消息上传给服务器。

案例如下:

http.post("/news", {"sid":"hyuud7543619"},

{

"recvId": getRcvId(),

"msg": getMessage(),

},

function(code, xhr){},

function(code, data, xhr){}

);

三、收取新消息

主要难点:服务器推送消息和新消息通知。

1、用webSocket客户端监听新消息

ws.onmessage = function(e){

// 获取列表对象

var list = getList();

// 添加新消息

list.addItem(e.data);

// 未读消息个数加一

getUnreadSize().increment();

// 发出新消息通知

notify(e.data.sendId, e.data.msg);

}

消息列表一般用<div>标签来实现,用appendChild()接口来添加子节点。

2、发出新消息通知

浏览器默认有Notification类来弹窗通知。

如果需要声音播放,还需要调用<audio>标签的play()和stop()接口。

四、网页端的优缺点

优点:

1、应用功能总是获取最新的,升级容易。

2、开发成本少,界面搭建简单又美观。

缺点:

1、对于硬件功能很难调用。

例如:摄像头,麦克风调用,扬声器声音调用,新消息通知。

2、浏览器的安全限制太强。

相关推荐
FreeTinker5 小时前
HTML本地存储技术解析:localStorage与sessionStorage的原理、差异与应用场景
前端·html
可乐鸡翅yeah_10 小时前
第三方接口对接 M3U8 流媒体排坑实战,解决外部服务商流兼容难题
前端·javascript·python·django·html·m3u8·m3u8在线
梦醒沉醉14 小时前
13、HTML入门——HTML中的表单和按钮
html
子非鱼a14 小时前
【WEB】[NewStarCTF 公开赛赛道]UnserializeOne
前端·javascript·html
茯苓gao17 小时前
从零开发 EtherCAT 主站(六):SOEM 初始化流程详解,主站是如何发现所有从站的?
笔记·嵌入式硬件·学习·信息与通信
开开心心就好17 小时前
电子教鞭工具支持画框写字插图片功能齐全
android·开发语言·前端·javascript·人工智能·pdf·html
学习星球17 小时前
# 6G通感一体化(ISAC)技术深度解析——从原理到实战> <br />
go·信息与通信·媒体
捷烽1 天前
三大运营商熔接损耗验收:国家规范与0.08dB的正确理解
运维·网络·信息与通信
Multipath7122 天前
5G CPE vs 5G聚合路由器 该怎么选
网络·5g·安全·智能路由器·实时音视频·信息与通信
学习星球2 天前
6G核心网架构深度解析——AI Native时代的网络变革
网络·人工智能·5g·架构·go·信息与通信