html站内消息列表,WebSocket实现站内消息实时推送

关于WebSocket

WebSocket是HTML5 开始提供的一种在单个TCP连接上进行全双工通讯的协议。什么是全双工?就是在同一时间可以发送和接收消息,实现双向通信,比如打电话。WebSocket相比于ajax,其优点在于浏览器和服务端只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据主动传输。而ajax则需要浏览器不断地主动向服务器发送请求,服务器才会响应,这种模式相对浪费带宽和资源。

而且,WebSocket的API也是非常的简单方便,所以用WebSocket实现消息的实时推送就再好不过了。

进入正题,首先创建一个WebSocketUtil类,在这个类下配置WebSocket,先把整体轮廓展示一下。

0b8f19e08da515ec5b0b4082f1d2069b.png

然后给每个方法实现具体功能

1、createWebSocket:new一个WebSocket对象webSocketSystem,并建立连接,连接建立时会触发onopen事件,可以在onopen里面定时给服务端发送心跳消息。

266fe6cee7c92f57b5571ad5d6a0735c.png

2、这里是重点,当客户端接收服务端数据时触发onmessage事件,我们可以给WebSocketUtil类写一个方法wrapperMessageSystem处理接收到的消息。

d47735f9f19be240d92c388d790c37e1.png

WebSocked发来的是一个JSON格式,这里我们用eventBus来传递触发事件:

0ab724ab2d07a6a84aee72be2fb01ab3.png

Message.vue组件内用eventBus监听WebSocketUtil类传过来的事件并做处理,最后在组件销毁前关闭此事件

175e7a433e60541cdeba81a5a82dd655.png

站内消息的实时推送功能就完成了,是不是很简单呀

标签:WebSocket,WebSocketUtil,实时,消息,推送,服务端,事件

来源: https://www.cnblogs.com/aibiliv/p/14131027.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值