如何将客户端的Python套接字连接到Node.js / socket.io?

时间:2010-11-03 11:11:03

标签: python sockets node.js blender

我想通过套接字将Blender(v2.55)连接到网页。

对于网络部分,我可以使用Node.js& socket.io。我已经使用了一个小node.js / socket.io,我觉得这不是问题。

现在对于Blender,它运行在Python 3.1上,所以我已经有套接字,如果需要我可以添加库。我是Python套接字的新手,可以直接将客户端连接到node.js / socket.io吗?

我尝试使用Python doc中的基本代码:


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 :(得分:0)

您缺少协议/握手。你有什么是裸TCP套接字连接。 node.js / socket.io位于TCP套接字之上。基本上当你打开一个与socket.io服务器的连接时,它希望你使用一些协议进行通信(websockets,longpolling,htmlfile等等)。初始握手定义了该协议的内容。 Websockets是受支持的协议之一。 This blog post应该对你有所帮助。实现websockets看起来并不那么难。

相关问题