You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python websockets库通过IP地址连接WebSocket服务器?

解决用IP地址连接WSS服务器的问题

直接用IP连接WSS失败的核心原因是TLS证书验证不通过:服务器的SSL证书是绑定原域名(比如api.server.com)的,当你用IP发起请求时,TLS握手阶段会检查请求的主机名(这里是IP地址)和证书中记录的域名是否一致,不匹配就会拒绝连接。

有两种解决方式:

1. 正确方案:指定SNI(推荐生产环境使用)

通过sslopt参数设置server_hostname为原域名,让服务器返回对应域名的证书,就能通过验证:

import websocket
import ssl

def on_message(wsapp, message):
    print(message)

# 替换成实际的IP和原域名
ws = websocket.WebSocketApp("wss://1.2.3.4:443/ws/stream", on_message=on_message)
ws.run_forever(sslopt={"server_hostname": "api.server.com"})

2. 临时方案:绕过证书验证(仅测试用,不安全)

如果只是临时测试,可以关闭证书验证,但这会让连接失去TLS的安全保护:

import websocket
import ssl

def on_message(wsapp, message):
    print(message)

ws = websocket.WebSocketApp("wss://1.2.3.4:443/ws/stream", on_message=on_message)
ws.run_forever(sslopt={"cert_reqs": ssl.CERT_NONE})

内容的提问来源于stack exchange,提问作者rare77

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 06:53:28