как связать Python и Node JS через Socket и Socket.io-client

проблема в том что клиент JS не может подключиться к серверу на Python

вот код сервера:

import socket

sock = socket.socket()
sock.bind(('', 9090))
sock.listen(1)
conn, addr = sock.accept()
while True:
    data = conn.recv(1024)
    print(data.decode())

а вот код клиента:

const io = require('socket.io-client');
var socket = io.connect("http://localhost:9090", {reconnect: false});
socket.emit("hello");

и при подключении вместо сообщения hello сервер выдает

GET /socket.io/?EIO=4&transport=polling&t=OCMnyU-&b64=1 HTTP/1.1 

User-Agent: node-XMLHttpRequest                    

Accept: */*                     

Host: localhost:9090                     

Connection: close

как можно пофиксить данную проблему? вариант переписать все на WebSocket не предлагать


Ответы (1 шт):

Автор решения: Danil Apsadikov

У вас на клиенте используется socket.io, а на сервере socekt.io не используется, используются обычные socket'ы, следовательно логика подключения у socket.io другая и нужно, чтобы сервер поддерживал socket.io. Для этого нужно установить зависимость python-socket.io https://python-socketio.readthedocs.io/en/latest/index.html

→ Ссылка