2010-11-03 47 views
3

我想通過套接字將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

回答

0

你缺少協議/握手。你有什麼是一個純粹的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://stackoverflow.com/questions/ 4101621 /蟒-3-1-錯誤而-加入-A-庫功能於混合器 – 2010-11-04 21:35:03

相關問題