关于WebSocket

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

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

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

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

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

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

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

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

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

最新文章

  1. Shell判断字符串包含关系的几种方法
  2. C++builder XE10 终于支持类内变量初始化了
  3. ASP.NET MVC 使用Echarts
  4. 新手推荐:IIS+PHP+MYSQL环境配置教程
  5. JSONP的实现流程
  6. 【专章】dp基础
  7. Css中的盒子结构padding和margin的区别
  8. CCF CSP 201609-1 最大波动
  9. js里面对数据处理的方法
  10. F - Tmutarakan Exams URAL - 1091 -莫比乌斯函数-容斥 or DP计数
  11. 1.3 flask
  12. python中的包
  13. Httpclient的学习(一)
  14. loadrunner12-查看controller运行报错详细log
  15. 希尔密码(Hill Cipher)的实现
  16. fabric Report API
  17. JAVA题库01
  18. 【转】火狐浏览器中firebug插件的时间线域解释
  19. Jmeter获取Cookie并传递到下一个线程---跨线程后cookie找不到了
  20. JAVA相关资料

热门文章

  1. 关于Intege.valueOf()的使用
  2. 从执行上下文角度重新理解.NET(Core)的多线程编程[2]:同步上下文
  3. 【CF607B】Zuma——区间dp(记忆化搜索/递推)
  4. 使用@RequestBody注解获取Ajax提交的json数据
  5. Android的Toolbar(含溢出菜单设置[弹出菜单的使用])的使用PopMenu的样式
  6. 这篇建议java开发都看看,对Java方法及加深理解的很深,值得一看!
  7. PyQt(Python+Qt)学习随笔:使用实例方法赋值方式捕获事件
  8. hitorMiss、hitAndMiss以及MORPH_HITMISS?
  9. Java面试专题-多线程(3)-原子操作
  10. leetcode计划