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

问题描述:

我想通过套接字将Blender(v2.55)连接到网页。如何将客户端上的Python套接字连接到Node.js/socket.io?

对于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) 

它的结果是:

 
Sent:  Hello from Blender 
Received: b'' 

看来,搅拌机连接,但不接收数据。此外节点显示没有新的客户端连接...

我还需要别的吗?如果有人能帮助我...

+0

您可以使用telnet或netcat连接到“127.0.0.1”,8080(如telnet 127.0.0.1 8080)并通过telnet发送/接收数据吗?你的python脚本看起来不错。 – seriyPS 2010-11-03 11:21:06

+0

它已连接,但没有在Node端的通知...我以前使用此代码与Python套接字服务器,它工作得很好... – 2010-11-03 11:41:50

+0

好吧,所以似乎我必须看看UDP套接字,为Python和节点.js ... – 2010-11-03 13:42:19

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

+0

现在似乎还有一个Python Websocket客户端库。我没有使用它 - https://github.com/mtah/python-websocket – 2010-11-04 00:46:45

+0

我想要的python-websocket,但我有另一个问题,我在这里发布它:http://*.com/questions/ 4101621 /蟒-3-1-错误而-加入-A-库功能于混合器 – 2010-11-04 21:35:03