websocket(基础使用)

WebSocket是一种基于TCP的网络通信协议,用于解决HTTP协议的客户端发起通信限制。其特点是建立简单,兼容性强,数据格式轻量,无同源限制,支持双向通信。本文详细介绍了WebSocket的创建、服务器搭建、事件处理以及在小程序中的应用,帮助读者理解并掌握WebSocket的基本使用。
摘要由CSDN通过智能技术生成

什么是websocket?

WebSocket是一种网络通信协议,很多高级功能都需要它
websocket基于tcp协议,和http都是网络传输协议

为什么要使用websocket?

因为 HTTP 协议有一个缺陷:通信只能由客户端发起。

websocket特点:

(1)建立在 TCP 协议之上,服务器端的实现比较容易。

(2)与 HTTP 协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用 HTTP 协议,因此握手时不容易屏蔽,能通过各种 HTTP 代理服务器。

(3)数据格式比较轻量,性能开销小,通信高效。

(4)可以发送文本,也可以发送二进制数据。

(5)没有同源限制,客户端可以与任意服务器通信。

(6)协议标识符是ws(如果加密,则为wss),服务器网址就是 URL。

websocket属性

属性 描述
Socket.readyState 只读属性 readyState 表示连接状态,可以是以下值: CONNECTING:0 - 表示连接尚未建立 OPEN:1 - 表示连接已建立,可以进行通信。 CLOSING:2 - 表示连接正在进行关闭。 CLOSED:3 - 表示连接已经关闭或者连接不能打开。
Socket.bufferedAmount 只读属性 bufferedAmount 已被 send() 放入正在队列中等待传输,但是还没有发出的 UTF-8 文本字节数。

websocket事件

事件 事件处理程序 描述
open Socket.onopen 连接建立时触发 连接成功事件
message Socket.onmessage 客户端接收服务端数据时触发 接收数据事件
error Socket.onerror 通信发生错误时触发 错误事件
close Socket.onclose 连接关闭时触发 关闭连接事件

websocket方法

方法 描述
Socket.send() 使用连接发送数据
Socket.close() 关闭连接

创建websocket服务器

cmd中

初始化

npm init   

一路回车到底就好了
在这里插入图片描述

安装 webSocket

npm i ws   

在这里插入图片描述

运行 服务器


                
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
WebSocket是一种基于TCP协议实现的全双工通信协议,它可以在客户端和服务器之间建立一个实时的双向通信通道。Python中有许多库可以用来创建WebSocket服务器和客户端,常用的有`websocket`和`autobahn`等。 下面是一个简单的WebSocket服务端的示例代码: ```python import asyncio import websockets async def echo(websocket, path): async for message in websocket: await websocket.send(message) start_server = websockets.serve(echo, "localhost", 8765) asyncio.get_event_loop().run_until_complete(start_server) asyncio.get_event_loop().run_forever() ``` 这个例子中,我们使用了`websockets`库来创建一个WebSocket服务器,并定义了一个`echo`函数来处理客户端发送的消息。在这个函数中,我们使用`async for`循环来获取客户端发送的消息,并调用`await websocket.send(message)`方法将消息原样返回给客户端。 要启动这个服务端,只需要执行上面的代码即可。 如果要创建一个WebSocket客户端,可以使用`websockets`库中的`connect`方法来连接WebSocket服务器,示例代码如下: ```python import asyncio import websockets async def hello(): async with websockets.connect( 'ws://localhost:8765') as websocket: name = input("What's your name? ") await websocket.send(name) print(f"> {name}") greeting = await websocket.recv() print(f"< {greeting}") asyncio.get_event_loop().run_until_complete(hello()) ``` 在这个例子中,我们使用`async with`语句来创建一个WebSocket连接,并使用`await websocket.send(message)`方法发送消息给服务器。然后使用`await websocket.recv()`方法接收服务器返回的消息。 以上是Python中使用WebSocket的一些基础知识,希望对你有所帮助。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值