как связать 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