openshift 3.12 网络套接字 ERR_CONNECTION_ABORTED

openshift 3.12 websocket ERR_CONNECTION_ABORTED

我想开始 websocket 连接 (ws://whaterver) 在 OpenShift 中,但它们总是以 ERR_CONNECTION_ABORTED 结尾 立即 (new WebSocket('ws://whatever').

一开始我以为问题出在我们的应用程序上 但是我创建了一个最小的例子,我得到了相同的结果。

首先,我创建了一个 pod 并启动了这个最小的 Python websocket 服务器。

import asyncio
import websockets
async def hello(websocket, path):
    name = await websocket.recv()
    print(f"< {name}")
    greeting = f"Hello {name}!"
    await websocket.send(greeting)
    print(f"> {greeting}")

start_server = websockets.serve(hello, "0.0.0.0", 8000)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()

然后我创建了一个服务(TCP 8000)并创建了一个路由,我得到了相同的结果。

我也尝试过使用不同的端口或不同的目标(例如:/ws),但没有成功。 这个最小的脚本能够响应一个简单的 http 请求,但是对于 websocket 连接它不能。

您知道问题出在哪里吗? (根据文档,这些连接应该按原样工作) 我应该尝试使用一些路由环境变量还是有文档中未提及的任何限制?

将 Károly Frendrich 答案发布为社区 wiki:

Finally we realized that the TLS termination is required to be set.

可以使用Secured Routes

来完成