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

标签 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 文档中的基本代码:


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 也显示没有新的客户端连接……

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

最佳答案

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

关于python - 如何将客户端的 Python 套接字连接到 Node.js/socket.io?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4086435/

相关文章:

python - 如何在 Python 中递归遍历目录,同时忽略某些子目录?

javascript - 如何从静态文件夹中播放 html 格式的 mp3 文件?

c - SO_KEEPALIVE 在调用 write() 期间不起作用?

javascript - 在node.js中读取文件是否保证项目的顺序

python - 将一列数据帧行中的列表转换为简单字符串

python - 扩展 Django 用户模型 OneToOne - 用户配置文件未保存

java - 使用套接字发送帧

ios - 当我的服务器看到一些数据到我的 iPhone 时,套接字是唯一的选择吗?

angularjs - Express 防止 SPA 中的重定向

node.js - 使用 Sequelize 将 Cloud Run Node 应用程序连接到 Cloud SQL