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

问题描述 投票:3回答:1

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

对于Web部件,我可以使用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)

其结果是:

发送:来自Blender的你好收到:b''

似乎Blender已连接,但未接收数据。此外,Node显示未连接任何新客户端...

我还需要其他东西吗?如果有人可以帮助我…

python sockets node.js blender
1个回答
0
投票

您缺少协议/握手。您所拥有的只是一个裸露的TCP套接字连接。 node.js / socket.io位于TCP套接字的顶部。基本上,当您打开与socket.io服务器的连接时,期望您使用某种协议进行通信(websockets,longpolling,htmlfile等)。初始握手定义该协议将是什么。 Websockets是受支持的协议之一。 This blog post应该可以帮助您。实现websocket看起来并不困难。

© www.soinside.com 2019 - 2024. All rights reserved.