python实现websocket上传音频并测试

WebSocket是一种全双工通信协议,允许在单个TCP连接上进行双向通信。WebSocket协议允许服务器通过将请求头Upgrade设置为WebSocket来升级HTTP连接。这使得WebSocket协议可以在浏览器和服务器之间建立持久连接,能够实现实时数据传输和通信。

WebSocket协议基于标准的HTTP和TCP网络协议,并通过自定义协议的方式来处理数据。WebSocket协议通过发送和接收数据帧来实现通信,这些帧包含操作码、负载数据和掩码。掩码用于保护数据的安全性,操作码用于标识帧的类型,负载数据则是消息的内容。WebSocket协议支持二进制和文本数据传输。

WebSocket协议在实时通信方面有很好的应用,比如在线游戏、聊天应用、音视频传输等。由于WebSocket协议通过单个TCP连接进行双向通信,因此它比传统的HTTP请求响应模型更加高效和实时。

代码 

import websocket
import base64

def on_message(ws, message):
    print("收到消息:", message)

def on_error(ws, error):
    print("出现错误:", error)

def on_close(ws):
    print("WebSocket连接已关闭")

def on_open(ws):
    print("WebSocket连接已打开")
    # 读取音频流
    with open("test.wav","rb") as f:
        data = f.read()
        # encoded_string = base64.b64encode(f.read())
        print(f"读取到的文件长度是: {len(data)}")
        ws.send(data)
        print("================================")
        ws.send(data,opcode=websocket.ABNF.OPCODE_BINARY)
    # 发送数据
    # ws.send("Hello, WebSocket!")

if __name__ == "__main__":
    websocket.enableTrace(False)  # 启用调试信息
    ws = websocket.WebSocketApp("ws://ip:port/path",  # WebSocket接口地址
                              on_message = on_message,
                              on_error = on_error,
                              on_close = on_close)
    ws.on_open = on_open
    ws.run_forever()  # 保持WebSocket连接

结果

你可能感兴趣的:(测试,python,计算机网络,websocket,网络协议,网络,python,音视频)