WebSocket 的个人理解


前言

WebSocket 是一种基于在单个 TCP 连接上进行全双工通信的协议,是从HTML5开始提供的一种浏览器与服务器之间进行全双工通讯的网络技术,解决了HTTP协议不适用于实时通信的缺点,相较于 HTTP 协议,WebSocket 协议实现了持久化网络通信,可以实现客户端和服务端的长连接,能够进行双向实时通信,协议名为"ws"。
原文链接:

一、http 请求

通过 APP 向 service 发送请求,服务器返回一个响应
在这里插入图片描述
客户端拿数据都是需要先发请求,才能拿到数据

模拟一个需求场景,两个人微信聊天,
A 向服务器发送信息,
B 需要接受到 A 发送的信息,B 并没有向服务器发送HTTP 请求,服务器要主动推送数据

图片中的模型是无法满足这个功能的
此时就需要长连接,建立长连接有很多中方式,HTTP 也可以建立长连接,这里学习怎么用 socket 的方式来实现长连接

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

HTTP与WebSocket的区别

在这里插入图片描述

  • 两者都是基于TCP协议进行数据传输,具有可靠的传输能力,而且都是应用层协议
  • HTTP是单向的通信,只能由客户端向服务端发送请求,服务端无法主动向客户端发送消息
  • WebSocket是双向通信,客户端和服务端是通过握手建立连接,可实现全双工通信,双方可以同时主动向对方发送消息
  • WebSocket在建立连接时数据是通过HTTP协议传输的,但是建立之后,真正传输数据时使用的是更加可靠的TCP协议
    二者关系
    WebSocket在建立连接时,HTTP通过Upgrade消息头来通知客户端需要采用WebSocket协议来完成这个请求,在发送完此响应最后的空行后,服务器就会切换到WebSocket协议,接口返回状态码为101,表示服务器已经理解了客户端的请求,需要升级协议

二、Socket使用步骤

1. 创建 Socket

APP 创建一个 Socket ,服务器也创建一个 Socket
在这里插入图片描述

2. 把 APP的 Socket 和服务器的 Socket 连接起来

需要知道服务器的 ip 地址以及端口号

建立连接完成后,就可以使用 Socket 进行和服务器之间的通信
在这里插入图片描述

3. 读和写

把需要读和写的东西通过 socket 传给对方就可以
在其中的一端完成写入,另一端可以完成读取
在这里插入图片描述

好处,只要客户端的 socket 和服务器的socket 之间的连接不断开, 服务器和客户端之间可以进行主动消息发送

三、用 uniapp 来实现 socket

官方文档

1.创建连接 – uni.connectSocket

	uni.connectSocket({
		url:'ws://icewould.tpddns.cn:18123', // 向哪个服务器的哪个端口发送建立连接的消息
		success: (data) => { // 定义当连接建立成功之后需要做的事情
			console.log(data) //  {"errMsg":"connectSocket:ok"} 服务器返回的 data
		}
	})

参数分析

  • url: 向哪个服务器的哪个端口发送建立连接的消息
  • success 定义当连接建立成功之后需要做的事情

其余详见文档…发现没什么好记录的 = =

uniApp全局通过VueX使用websocket收发数据

这篇文章挺详细的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值