【你问我答】客户端需要实现实时推送消息,应该怎么实现?

问题描述:

客户端需要实现实时推送消息,应该怎么实现?

回答有奖:

选取一位认真回答问题的牛友,赠送200牛币!
▶回答尽量有自己的思考,不要单纯的只是复制粘贴定理定义,或者他人blog哦~

你问我答问题汇总:点击进入
关注你问我答栏目:点击关注

你问我答 - 答问题,成大佬,拿牛币!
你问我答是牛客新栏目,每周1期几个面试中真实遇到的问题,
牛友在问题贴下留下自己的知识,经验与见解,
帮助更多牛友了解更多技术相关知识!

#面试题目##安卓工程师##iOS工程师##悬赏#
全部评论
1.轮询: 客户端定时向服务器发送Ajax请求,服务器接到请求后马上返回响应信息,并关闭连接。 优点:后端程序编写比较容易  缺点:请求中大半是无用的,浪费带宽和服务器资源  实例:适用于小型应用 2.长轮询: 客户端向服务器发送Ajax请求,服务器接到请求后Hold住连接,直到有新消息才返回响应信息,并关闭连接;客户端处理完响应信息后再向服务器发送新的请求。 优点:在无消息的情况下不会频繁的请求,耗费的资源少  缺点:服务器Hold住连接会消耗资源,返回数据顺序无法保证,难于管理和维护  实例:WebQQ、Hi网页版、FaceBook IM等 3.长连接: 在页面中嵌入一个隐藏的jframe,将这个隐藏的iframe的src属性设置为对一个长连接的请求或者采用XRH请求,服务器端就能源源不断地往客户端输入数据。 优点:消息即时到达,不发无用的请求;管理起来也相对方便  缺点:服务器维护一个长连接会增加开销  实例:Gmail聊天 4.Flash Socket: 在页面中嵌入一个使用了Socket类的Flash程序,JavaScript通过调用此Flash程序提供的Socket接口与服务器端的Socket接口进行通信,JavaScript在收到服务器端传送的信息后控制页面的显示。 优点:实现真正的即时通信,而不是伪即时  缺点:客户端必须安装Flash插件;非HTTP协议,无法自动穿越防火墙  实例:网络互动游戏 5.WebSocket: WebSocket是HTML5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术;依靠这种技术可以实现客户端和服务器端的长连接,双向实时通讯。 优点:事件驱动;异步;使用WS或者WSS协议的客户端Socket;能够实现真正意义上的推送功能  缺点:少部分浏览器不支持,不同浏览器支持的程度和方式都不同
点赞 回复
分享
发布于 2020-03-17 11:07
apns
点赞 回复
分享
发布于 2020-03-17 12:29
联想
校招火热招聘中
官网直投

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务