@albertalexandrov

Как на клиенте (html-страница) получать сообщения от сервера на вебсокетах?

Здравствуйте!

На своем локальном компьютере в IDE PyCharm запущен скрипт:

import socket

sock = socket.socket()
sock.bind(('', 9090))
sock.listen()
conn, addr = sock.accept()

print('connected:', addr)
conn.sendall(b'data')
print('Отправили данные')
conn.close()


При подключении к сокету в консоль печатаются 'connected: + {addr}', отправляется строка 'data' и сообщение об отправке 'Отправили данные' и закрывается соединение.

Далее я хочу, чтобы в консоли html-страницы (файл располагается в той же папке что и файл с сервером) в вывелась отправленная сервером строка 'data'. html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        var socket = new WebSocket("ws://127.0.0.1:9090/");
        socket.onmessage = messageReceived;

        function messageReceived(e) {
            console.log(e.data);
        }
    </script>
</head>
<body>
</body>
</html>


Когда я открываю html-страницу, должно произойти соединение и получено сообщение. Однако, этого не происходит, хотя в консоли PyCharm:

connected: ('127.0.0.1', 53646)
Отправили данные


А в консоли браузера:

test_socket.html:7 WebSocket connection to 'ws://127.0.0.1:9090/' failed: Error during WebSocket handshake: net::ERR_CONNECTION_ABORTED


В чем дело?
  • Вопрос задан
  • 71 просмотр
Решения вопроса 1
bingo347
@bingo347
Crazy on performance...
В Python Вы запустили tcp-raw сокет, а браузер от Вас ожидает протокол WebSocket
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы