论坛首页 Web前端技术论坛

基于 Java 的 WebSocket 教程

浏览 5956 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2018-01-15  
1. WebSocket 是什么
一言以蔽之,WebSocket允许服务器「主动」给浏览器发消息,如教程演示截图,服务器会主动推送比特币价格给浏览器。


2. 为什么要用 WebSocket
实时获取服务端数据这种需求,在使用 WebSocket 之前也是可以做到的,主要方式就是轮询。比如 javascript上一个定时器,每隔几秒钟向服务端发送消息询问最新价格,然后显示在浏览器上。但是这种浏览器主动轮询的方式有几个弊端:
[
  • 服务器压力大。 假设浏览器每隔一秒钟发出请求,如果同时有 100 个用户在访问当前页面,那么每秒钟就至少有 100 个请求要处理,服务器压力是很大的。
  • 浪费严重。 倘若服务器数据每隔 60 秒才有新数据,那么其中有59次访问都是浪费的。
  • 实时性差。 毕竟是每隔一秒钟才发出请求,假如说为了缓解服务器的压力,做成每隔 10 秒才发出请求,就很有可能错过数据的更新,没有及时拿到数据。

  • 以上就是浏览器传统的轮询方式的弊端,而使用 WebSocket 就可以解决这些问题。
  • 服务器压力问题。 WebSocket 是服务端向浏览器主动推送消息,只有服务器有新数据的时候才需要推送,没有数据就不用推送,所以服务器性能压力小很多
  • 浪费问题。每次有效数据才推送,没有新数据就不推送,不存在浪费问题
  • 实时性问题。 一旦有了新数据马上就推送,浏览器实时获取新数据。

  • 3. 怎么开发 WebSocket 应用
    WebSocket 既然好处那么多,那么如何开发支持 WebSocket 的 J2EE 应用呢?
  • 可以运行的项目

  • 老规矩,我会先给大家可以跑起来的项目,确认是走得通的。 不要大家搞半天,项目本身都是有问题的,实在是浪费大家时间 (我在基于百度学习的过程中,就搜到大量未经验证的教程,各种跑不通,浪费很多时间,真是感到深恶痛绝)。
  • 从创建项目开始撸起,并提供必要的jar包下载
  • 服务端代码开发
  • 前端代码开发

  • 如此这般照着做一轮,就可以看到效果了。
  • 疑难问题

  • 最后把开发这个 WebSocket 教程期间碰到的疑难问题也单独强调了一下,万一有同学有类似的问题也少走弯路。

    4. WebSocket 教程地址
    http://how2j.cn/k/websocket/websocket-tutorial/1625.html?tid=115
    教程由个人完成,局限于个人的经验和视野,有诸多不足之处,请各位多多指点,谢谢。
    论坛首页 Web前端技术版

    跳转论坛:
    Global site tag (gtag.js) - Google Analytics