websocket学习总结

一、前后端常用通讯方式

     1. ajax   

  浏览器发起请求,服务器返回数据,服务器不能主动返回数据,要实现实时数据交互只能是ajax轮询(让浏览器隔个几秒就发送一次请求,然后更新客户端显示。这种方式实际上浪费了大量流量并且对服务端造成了很大压力)。

     2. websocket

        websocket是HTML5出的东西(协议),是一种全双工通信机制,两端可以及时地互发事件,互发数据,相互通信,只需要浏览器和服务器建立一次连接,服务器就可以主动推送数据到浏览器实现实时数据更新。

    原生 websocket 支持到IE11 ,实际开发中,有比较著名的两个库socket.io(英文版中文版可能跟新不及时) 和 sockjs , 它们都对原始的API做了进一步封装和兼容IE,提供了更多功能,都分为客户端和服务端的实现,实际应用中,可以选择使用。

  websocket  的实现需要后端搭建一个WebSocket服务器。

      websocket最好用在实时更新的业务场景中,解决ajax long polling长轮询问题。如果一次请求就能得到想要的数据信息业务,还是使用ajax来解决,此时如果使用websocket相当于一直浪费着服务器的资源。

二、有两种websocket包可以集成在项目中,方便引入websocket机制:

     1、java_websocket.jar :从底层集成,需要手动创建 WebSocketServer类并开启(调用start方法)

     2、websocket-api.jar  :使用ServerEndpoint注解,value参数指定了ws访问的路径

  例如:

    使用@ServerEndpoint(value="/websocket/connectServer") 来标识一个websocketserver类

         ws访问这个websocketserver的路径为:ws://服务器IP:tomcat端口/项目名/websocket/connectServer

 

posted @ 2018-03-06 16:15  wangle100  阅读(210)  评论(0编辑  收藏  举报