java websocket

2 篇文章 0 订阅

java websocket

这一篇文章是19-3-14日写的,学习java网络编程,同时结合clw的socket现状,来理解流行的websocket协议。

java 网络编程

URl处理

关于这一部分不详细描述,就是资源符号的解析。

socket编程

首先讲一下网络传出协议:

**a)**TCP传输控制协议,它保障了两个应用程序之间的可靠通信。通常用于互联网协议,被称 TCP / IP。

**b)**UDP用户数据报协议,一个无连接的协议。提供了应用程序之间要发送的数据的数据包。

重点来了

介绍:socket使用TCP保证通信机制,客户端创建一个套接字,并尝试连接服务器的套接字。连接建立时,服务器会创建一个socket对象,客户端和服务器可以通过对socket对象的写入和读取来进行通信。java.net.socket类代表一个套接字,并且java.net.ServerSocket类为服务器提供了一种来监视客户端,并与他们建立连接的机制。

建立连接的过程

**1、**服务器实例化一个serverSocket对象,表示通过服务器上的端口通信。
**2、**serverSocket的accept()方法一致等待,直到客户端连接上给定的端口。
**3、**服务器等待连接时,一个客户端实例化一个socket对象,指定服务器名和端口号请求连接。
**4、**通信被建立,客户端创建一个socket对象与服务器进行通信
**5、**服务端的accept()方法返回一个新的socket的引用,该socket连接客户端的socket。

##传说中的webSocket原理##

http协议本身只有1.0和1.1,也就是所谓的keep-alive,把多个http请求合并为一个;不支持持久连接。

webSocket协议是HTML5中的协议,支持持久连接。

优点

**1)**http的生命周期通过Request来界定,也就是一个Request一个Response;在1.0版本中这次http请求就结束了。在1.1版本中,有一个keep-alive,在一个http连接中可以发送多个Request,接收多个Response。且Response为被动的不能主动发起。

**2)**webSocket协议是基于http协议的,借用http协议来完成一部分握手。

Ajax轮询原理

客户端发起连接后,如果没有消息,就一直不返回Response给客户端,直到有消息才返回,返回之后,客户端再次建立连接,周而复始,且无记忆。

webSocket

被动性,当服务器完成协议升级后(HTTP->Websocket),服务端就可以主动推送信息给客户端啦。

只需要经过一次HTTP请求,就可以做到源源不断的信息传送了。(在程序设计中,这种设计叫做回调,即:你有信息了再来通知我,而不是我傻乎乎的每次跑来问你)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值