从 reactjs 客户端连接到安全 Web 套接字 python 服务器

Posted

技术标签:

【中文标题】从 reactjs 客户端连接到安全 Web 套接字 python 服务器【英文标题】:Connection to secure web socket python server from reactjs client 【发布时间】:2020-01-09 20:29:21 【问题描述】:

尝试从 reactjs 客户端连接 websocket python 服务器。

SecurityError: 无法构造“WebSocket”:可能无法从通过 HTTPS 加载的页面启动不安全的 WebSocket 连接。

Web 套接字 python 服务器

ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
localhost_pem = pathlib.Path(__file__).with_name("localhost.pem")
ssl_context.load_cert_chain(localhost_pem)

start_server = websockets.serve(
    asl_video, "0.0.0.0", 8766, ssl=ssl_context, ping_interval=30, ping_timeout=30, max_size=None
)

reactjs 应用中的代码

var webSocket =  new W3CWebSocket('wss://10.12.5.112:8766');

【问题讨论】:

【参考方案1】:

我在文件 node_modules/react-dev-utils/webpackHotDevClient.js 中更新了以下行(第 62 行)

protocol: window.location.protocol === 'https:' ? 'wss' : 'ws', 这是以前 protocol: 'ws',

它解决了错误 SecurityError: 无法构造“WebSocket”:可能无法从通过 HTTPS 加载的页面启动不安全的 WebSocket 连接。

谢谢,

【讨论】:

以上是关于从 reactjs 客户端连接到安全 Web 套接字 python 服务器的主要内容,如果未能解决你的问题,请参考以下文章

在客户端编程 Web 套接字?

Web 套接字和 Flash 套接字客户端连接到一个 Node.js

如何从 AngularJS 站点安全地连接到 web api

部署到 ubuntu 后套接字 io 未连接(nginx、nodejs、reactjs)

我可以从使用 c++ 和 windows 连接到服务器的套接字获得啥信息?

在wss://ws.luno.com/api/1/stream/:pair上以客户端身份连接到ssl Web套接字