webSocket服务器前端使用

本文详细介绍了WebSocket技术,包括如何创建WebSocket对象、其核心属性如readyState和bufferedAmount的作用,以及关键事件如open、message、error和close的触发时机。此外还介绍了发送数据和关闭连接的方法。

创建webSocket对象

  var ws = new webSocket(url,[protocol])var ws = new webSocket(url,[protocol])

以上代码中的 url 指连接路径 protocol 是可选的,指定了可接受的子协议

WebSocket属性

假设使用了以上代码创建了ws对象

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

WebSocket事件

以下是 WebSocket 对象的相关事件。假定我们使用了以上代码创建了 ws对象:

事件事件处理程序描述
openws.onopen连接建立时触发
messagews.onmessage客户端接收服务端数据时触发
errorws.onerror通信发生错误时触发
closews.onclose连接关闭时触发

WebSocket 方法

以下是 WebSocket 对象的相关方法。假定我们使用了以上代码创建了 ws对象:

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

### 使用Python WebSocket服务器前端JavaScript WebSocket客户端交互 #### 创建WebSocket服务器 为了创建一个WebSocket服务器,可以利用`websockets`库。此库简化了通过WebSocket协议进行网络通信的过程。 ```python import asyncio import websockets async def echo(websocket, path): async for message in websocket: await websocket.send(f"Echo: {message}") start_server = websockets.serve(echo, "localhost", 8765) asyncio.get_event_loop().run_until_complete(start_server) print("Server started on ws://localhost:8765") asyncio.get_event_loop().run_forever() ``` 这段代码定义了一个简单的回声服务器,它会接收到的消息再发回去给客户端[^1]。 #### 构建HTML页面作为WebSocket客户端 对于前端部分,可以通过纯HTML和JavaScript来构建一个简易的网页应用,该应用能够连接至上述启动的服务端并交换信息。 ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>WebSocket Test</title> <script type="text/javascript"> document.addEventListener('DOMContentLoaded', (event) => { const socket = new WebSocket('ws://localhost:8765'); socket.onopen = () => { console.log('Connection established'); // Send a test message to the server upon connection. socket.send('Hello Server!'); }; socket.onmessage = ({ data }) => { console.log(`Message received from server: ${data}`); }; socket.onerror = error => { console.error(`WebSocket error observed:`, error); } }); </script> </head> <body> <h1>WebSocket Example Page</h1> <p id="status">Connecting...</p> </body> </html> ``` 当文档加载完成之后,尝试建立与本地运行中的WebSocket服务器之间的链接,并发送一条测试消息;一旦收到来自服务器的信息,则将其打印出来显示在控制台上[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值