@hjsdfd

WebSocket connection to 'wss://localhost:12345/' failed в чем ошибка?

Создаю сервер на Python и через сайт через js файл хочу подключиться к нему по протоколу https
но выдает ошибку
WebSocket connection to 'wss://localhost:12345/' failed

1) Сертификаты подключил
2) порты совпадают
Не понимаю в чем причина код сервера python и код js ниже
Python
import websockets
import pathlib
import ssl
import asyncio
import json
import logging
print('LIVE')
klient = []
me = []
dop = []
async def send_message(message: str):
    for i in klient:
        await i.send(message)

async def new_client_connected(client_socket: websockets.WebSocketClientProtocol,  path: str):

    print("New client connected!")
    klient.append(client_socket)
    new_message = await client_socket.recv()
    await send_message(message=new_message)

ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)

# Generate with Lets Encrypt, chown to current user and 400 permissions
ssl_cert = "sertificat.pem"
ssl_key = "key.pem"

ssl_context.load_cert_chain(ssl_cert, keyfile=ssl_key)
print(ssl_context)
async def start_server():
    await websockets.serve(new_client_connected, 'localhost', 12345, ssl=ssl_context)


if __name__ == "__main__":
    event_loop = asyncio.get_event_loop()
    event_loop.run_until_complete(start_server())
    event_loop.run_forever()


js код
document.addEventListener('DOMContentLoaded', function(){
    let websocket = new WebSocket("wss://localhost:12345");
    websocketClient.onopen = () => {
        console.log('Client connected');
        sendMessageButton.onclick = () =>{
            websocketClient.send(messageInput.value);
            messageInput.value = "";
        };
        
    };


    

    
    
}, false);
  • Вопрос задан
  • 444 просмотра
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
Коннектится надо не на localhost, а на тот домен, для которого выпущен твой сертификат. Иначе обломаешься на уровне TLS-соединения (сертификат не для того домена).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы