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

一、目的

猜测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、浏览器的安全限制太强。

相关推荐
纽格立科技5 小时前
动力的转向:当智能不再依赖碳基
车载系统·音视频·信息与通信·传媒
志尊宝1 天前
Vue3 零基础每日笔记(040):Vite 创建 Vue3 + TS 项目——企业标配从这一篇开始
笔记·vue·html·前端开发·软件开发
hz567891 天前
手术室视频示教系统解决方案:让临床教学突破空间限制
安全·音视频·实时音视频·信息与通信·智能硬件
前端·柱子1 天前
q-floodfill白边锯齿?一招搞定抗锯齿边缘问题
前端·html·canva可画
AISenz1 天前
基于 AIMesh™ 的储气库高频采集与业务控制方案
物联网·信息与通信·工业物联网·物联网协议
AISenz1 天前
基于 AIMesh™ 确定性工业无线的 AI 数据中心温控与液冷监测方案
物联网·信息与通信·工业物联网·物联网协议
qq_589666051 天前
移动前端开发之viewport的深入理解
html
zhanghaha13141 天前
HTML系列教程:17_HTML 框架(frameset、frame、iframe)零基础详解
前端·html
纽格立科技1 天前
警报叫醒收音机之后——两条应急广播路径的互相参照
车载系统·音视频·信息与通信·传媒
志尊宝2 天前
Vue3 零基础每日笔记(038):亲手封装 useDebounceFn 与 useThrottleFn——高频事件的流量阀
前端·javascript·vue·html·vue3