推送实现

方法 :

    Comet,SSE(服务器发送事件),Web Sockets

1.Comet

    实现方式:长轮询和流;

    长轮询:(断轮询的翻版,段轮询:不管数据有没有用,都直接返回)由页面发起一个到服务器的请求,然后服务器一直保持链接打开,知道有数据可发送。发送完毕,关闭链接,随机,页面又发起新请求。

    HTTP流:浏览器向服务器发送一个请求,服务器保持链接打开,服务器周期性的向浏览器发送数据。在Firefox、safari、Opera、Chrome中通过监听readystatechange事件及检测readyState的值是否为3,就可以利用XHR的实现HTTP流。


2.SSE

    是围绕只读Comet交互推出的API或者模式。


3.Web Sockets

    HTML5开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。在WebSocket API中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。当你获取 Web Socket 连接后,你可以通过 send() 方法来向服务器发送数据,并通过 onmessage 事件来接收服务器返回的数据。


    


        

    

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,主要用于实时、双向数据交换,特别适合于像在线聊天、游戏和股票交易等需要频繁更新数据的应用场景。以下是WebSocket消息推送实现的通用步骤: 1. **客户端(Web浏览器)连接**:客户端创建一个WebSocket对象,并指定服务器的URL。然后调用`connect()`方法尝试建立连接。 ```javascript const socket = new WebSocket('wss://your-server.com'); ``` 2. **握手过程**:服务器收到请求后,会发送一个HTTP升级头响应,将HTTP升级为WebSocket协议。客户端收到这个响应后,会进入open状态,表示连接已建立。 3. **发送和接收消息**:一旦连接建立,客户端和服务器可以相互发送文本或二进制数据。在JavaScript中,可以使用`send()`方法发送数据,`onmessage`事件监听接收到的数据。 ```javascript socket.send('Hello Server'); socket.onmessage = function(event) { console.log('Received:', event.data); }; ``` 4. **持久化连接**:WebSocket会保持长连接,除非主动关闭。数据传输是持续的,直到一方关闭连接。 5. **错误处理**:客户端和服务器都需要设置错误处理机制,如`onerror`事件,来捕获和处理可能出现的问题。 6. **安全与认证**:通常,WebSocket连接会在服务器端进行验证,如使用HTTPS确保安全,或者通过鉴权机制验证客户端身份。 7. **断线重连**:为了提高用户体验,一些库会提供自动重连功能,当连接断开时尝试重新连接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值