webSocket简单介绍和应用

简单介绍

1、webSocket是HTML5下不同于http的一种新协议(本质上也是基于tcp协议),实现了浏览器和服务器的全双工通信,是一个持久化的协议

  • WebSocket是一种双向通信协议。在建立连接后,WebSocket服务器端和客户端都能主动向对方发送或接收数据,就像Socket一样;

  • WebSocket需要像TCP一样,先建立连接,连接成功后才能相互通信。

原理:

websocket为应用层协议,其定义在TCP/IP协议栈之上通过握手机制,在客户端和服务器之间建立了一个类似TCP的长连接,从而方便他们之间的双向通信

数据收发的三个过程

  1)TCP协议的三次握手四次挥手的过程必然存在   2)websocket协议本身的握手环节   3)websocket协议握手成功之后的收发数据环节

webSocket和http协议的区别:

相同点:1、都是基于tcp的可靠性传输协议

2、都属于应用层协议

不同点:1、webSocket是双向通信协议,模拟Socket协议,可以双向发送或者接受信息,而HTTP是单向的。

2、webSocket是需要浏览器和服务器握手建立连接的

3、http是由浏览器发起向服务器的连接,服务器预先并不知道这个连接。

两者联系:webSocket在建立握手时,数据是通过HTTP传输的。但是建立之后,在真正传输时候是不需要HTTP协 议的。

webSocket发送数据的总体过程

1、首先,客户端发起HTTP请求,经过TCP的三次握手后,建立TCP连接;在HTTP请求中存放WebSocket支持的版本信息等,如:Upgrade,connection,webSocket-Version等

2、服务器在收到客户端握手的信息请求后,同样产用HTTP协议回馈数据

3、最后,客户端收到连接成功的消息后,开始借助于TCP传输信道进行全双工通信

注意:

最初握手阶段是http协议,握手完成后就切换到了webSocket协议,并完全与http协议脱离了

建立通

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
当使用Android开发时,可以使用Java语言来实现WebSocket功能。WebSocket是一种在客户端和服务器之间进行双向通信的协议,它可以实现实时数据传输和更新。 下面是一个简单的Android Java WebSocket的例子: 1. 首先,在Android项目中添加WebSocket库的依赖。可以使用OkHttp库来实现WebSocket功能,添加以下依赖到项目的build.gradle文件中: ```groovy implementation 'com.squareup.okhttp3:okhttp:4.9.0' ``` 2. 在Android应用程序中创建一个WebSocket客户端。可以在Activity或Fragment中创建一个WebSocket对象,并实现WebSocketListener来处理WebSocket事件。以下是一个简单的例子: ```java import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import okhttp3.WebSocket; import okhttp3.WebSocketListener; import okio.ByteString; public class MyWebSocketClient extends WebSocketListener { private WebSocket webSocket; public void start() { OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder().url("ws://your-websocket-url").build(); webSocket = client.newWebSocket(request, this); } @Override public void onOpen(WebSocket webSocket, Response response) { // 连接成功时的处理逻辑 } @Override public void onMessage(WebSocket webSocket, String text) { // 接收到消息时的处理逻辑 } @Override public void onClosing(WebSocket webSocket, int code, String reason) { // 关闭连接时的处理逻辑 } @Override public void onFailure(WebSocket webSocket, Throwable t, Response response) { // 连接失败时的处理逻辑 } public void sendMessage(String message) { webSocket.send(message); } public void closeConnection() { webSocket.close(1000, "Closing connection"); } } ``` 3. 在需要使用WebSocket的地方,创建一个MyWebSocketClient对象并调用start()方法来建立连接。可以使用sendMessage()方法发送消息,使用closeConnection()方法关闭连接。 以上是一个简单的Android Java WebSocket的例子。你可以根据自己的需求进行修改和扩展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值