¿Cómo conectar un socket Python en el lado del cliente a Node.js / socket.io?

Quiero conectar Blender (v2.55) a una página web a través de sockets.

Para el elemento web, puedo usar Node.js & socket.io. Ya he usado un pequeño node.js / socket.io, no creo que sea un problema.

Ahora para Blender, se ejecuta en Python 3.1, así que ya tengo sockets y puedo agregar bibliotecas si es necesario. Soy nuevo en los sockets de Python, ¿puedo conectar un cliente a node.js / socket.io directamente?

Probé con el código básico del documento de Python:

import socket import sys HOST, PORT = "127.0.0.1", 8080 data = "Hello from Blender" # Create a socket (SOCK_STREAM means a TCP socket) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Connect to server and send data sock.connect((HOST, PORT)) sock.send(bytes(data + "\n","utf8")) # Receive data from the server and shut down received = sock.recv(1024) sock.close() print("Sent: %s" % data) print("Received: %s" % received) 

Resulta por:

 Enviado: Hola desde Blender
 Recibido: b ''

Parece que Blender está conectado, pero no recibe datos. También Nodo no muestra ningún nuevo cliente conectado …

¿Necesito algo más? Si alguien me puede ayudar …

Te estás perdiendo un protocolo / apretón de manos. Lo que tienes allí es una simple conexión de socket TCP. node.js / socket.io vive encima de un socket TCP. Básicamente, cuando abre una conexión a un servidor socket.io, espera que use algún protocolo para la comunicación (websockets, longpolling, htmlfile, lo que sea). El apretón de manos inicial define lo que ese protocolo será. Websockets es uno de los protocolos soportados. Esta entrada de blog debería ayudarte. No parece tan difícil implementar websockets.