Как подключить сокет Python на стороне клиента к Node.js / socket.io? - PullRequest
3 голосов
/ 03 ноября 2010

Я хочу подключить Blender (v2.55) к веб-странице через сокеты.

Для веб-части я могу использовать Node.js & socket.io.Я уже использовал маленький node.js / socket.io, это не проблема, я думаю.

Теперь для Blender он работает на Python 3.1, поэтому у меня уже есть сокеты, и я могу добавлять библиотеки, если это необходимо.Я новичок в сокетах Python, могу ли я подключить клиент к node.js / socket.io напрямую?

Я пытался с помощью основного кода из документа 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)

результаты по:

Sent:     Hello from Blender
Received: b''

Кажется, что Blender подключен, но не получает данные.Также Node показывает, что новый клиент не подключен…

Нужно ли что-нибудь еще?Если кто-нибудь может мне помочь ...

1 Ответ

0 голосов
/ 04 ноября 2010

Вам не хватает протокола / рукопожатия. То, что у вас есть, это пустое соединение через сокет TCP. node.js / socket.io находится поверх TCP-сокета. В основном, когда вы открываете соединение с сервером socket.io, он ожидает, что вы будете использовать какой-то протокол для связи (websockets, longpolling, htmlfile и т. Д.). Начальное рукопожатие определяет, каким будет этот протокол. Websockets является одним из поддерживаемых протоколов. Это сообщение в блоге должно помочь вам. Это не выглядит так сложно, чтобы реализовать веб-сокеты.

...