【java】WebSocket(一)——管道式编程

来源:互联网 发布:centos jdk1.8 安装 编辑:程序博客网 时间:2024/06/05 21:30

一、前言

      我们现在的网络发展非常迅速,就拿小编经常玩的一个游戏来说吧——英雄联盟。这个游戏就是一个5V5的团队协作的游戏。他是一种基于帧同步完成的。这里我们说的websocket是一种管道式的同步,下面小编就向大家介绍一下。

二、websocket是什么?

      在传统的web的BS请求响应模式下,是如何实现实时通信,实现反推送的呢?

      一般的我们使用http是单向的,comet是可以实现双向通信,但是效率较低,需要好的服务器进行支持。传统的生命周期就是一个请求的结束。当下一个请求来的时候,就会重新建立。效率很低。websocket就可以解决这个瑕疵。HTML5中定义了WebSocket协议,可以在大大的节省服务器资源和带宽并达到实时通信的要求。

      建立客户端和服务端之间的通信通道,持续连接。服务器给客户端推送数据方便,不用建立到各个用户之间的连接,可以直接通过通道来通知所有的用户。

      应用:聊天、股票、游戏、监控。

三、操作步骤

这里写图片描述

      介绍:

      当用户登录的时候就建立一个通道,用户可以通过通道发送数据给服务器,服务器可以在通道中接收数据,也可以发送数据到客户端。

      在这个数据处理的过程中,服务器可以进行监听,监听的方法有三种:onopen、onmessage、onclose。

  • onopen是打开连接的时候响应的事件

  • onclose是关闭连接的时候响应的事件

  • onmessage是客户端发送数据的时候响应的事件

四、小结

      通过这次对websocket的学习,我了解了实时通信,了解了如何提升系统通信的效率,达到很好的效果。对其中的步骤有了深入的了解。另外还对自己比较感兴趣的实时通信技术也做了一些查看。

      下一篇将向大家带来websocket实战——直播聊天室。