Вы немного запутались здесь:
ws:// means http:// or default port 80
wss:// means https:// or default port 443
ws://<server>:<port> means http over that port.
В фоновом режиме происходит подключение браузера к серверу по протоколу http (s) и обновление подключения к веб-сокету, если это возможно.
Браузеры не допускают Raw соединений с сокетами, но Websocket .
Посмотрите на https://github.com/zeromq/jszmq#compatibility -with-zeromq :
Совместимость с ZeroMQ
Транспорт WebSocket недавно добавлен в zeromq и доступен только при компиляции из источника.
Другие порты zeromq, такие как NetMQ ( C#) и JeroMQ (C#) пока не поддерживают транспорт WebSocket.
Необходимо взглянуть на FastAPI Python Framework .
Шаблон, который вы ищете, будет выглядеть следующим образом:
[SOCKET CLIENT] --> [FASTAPI SERVER] <--> [ZEROMQ]
В этой документации показано, как настроить единый файловый клиент веб-сокета и сервер FastAPI: https://fastapi.tiangolo.com/advanced/websockets/
Ваша работа будет выполняться между websocket.receive_text и websocket.send_text. * 103 7 *
@app.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket):
await websocket.accept()
while True:
data = await websocket.receive_text()
# --> ZeroMQ Code Here <--
await websocket.send_text(f"Message text was: {data}")
Этот фреймворк настолько хорош, что вы можете использовать гораздо больше преимуществ с помощью собственных фоновых задач: https://fastapi.tiangolo.com/tutorial/background-tasks/
Итак, вы можете принимать сообщения от клиента и отправлять назад, когда это было сделано каким-то работником ZeroMQ.
Существует множество полезных функций, таких как Asyn c Базы данных, Instant OpenAPI Documentation и т. д.