WebSocket入门

一 概述

WebSocket是HTML5一种新的协议,它用来实现浏览器与服务器之间全双工通信(full-duplex)。一开始的握手需要借助于HTTP请求完成。WebSocket是真正实现了全双工通信的互联网技术。它是一种在单个TCP连接上进行全双工通讯协议。

二 全双工与单工的区别

  1. 全双工(Full Duplex)是通讯传输的一个术语。通信允许数据在两个方向上同时传输,它在能力上先当于两个单工通信方式的结合。全双工指可以同时(瞬间)进行信号的双向传输(A->B且B->A),指两个信息的发送时瞬时同步的。
  2. 单工,半双工(Half Duplex),半双工就是指一个时间段内只有一个动作发生。即同一瞬间(A->B,B->A)只能是一个发生,只有一个处理完后,下一个才开始。早期的对讲机以及早期集线器等设备均属于版半双工的产品。

三 http于websocket的区别

http协议是短连接(http1.1开始默认是长连接),所以请求之后,都会关闭连接,下次请求数据,就需要再次打开连接。

websocket是一种长连接,只需要通过一次请求来初始化连接,然后所有的请求和响应都是通过这个TCP连接进行通信。

注意:Tomcat服务器要Tomcat7.0.47+以上才支持websocket协议。

四 websocket相关注解说明

@ServerEndpoint("/websocket/{uid}")

  1. 申明这是一个websocket服务
  2. 需要指定访问该服务的地址,在地址中可以指定参数,需要通过{}进行占位

@OnOpen

  1. 用法:public void onOpen(Session session, @PathParam("uid") String uid) throws IOException{}
  2. 该方法将在建立连接后执行,会传入session对象,就是客户端与服务端建立的长连接通道
  3. 通过@PathParam获取url申明中的参数

@OnClose

  1. 用法:public void onClose() {}
  2. 该方法是在连接关闭后执行

@OnMessage

  1. 用法:public void onMessage(String message, Session session) throws IOException {}
  2. 该方法用于接收客户端发来的消息
  3. message:发来的消息数据
  4. session:会话对象(也是通道)

发送消息到客户端

  1. 用法:session.getBasicRemote().sendText("你好");
  2. 通过session进行发送。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值