2015-11-06 105 views
1

我通過教程工作在這裏找到: http://www.snakemq.net/doc/tutorial.html與snakemq蟒蛇斷言錯誤3.2.1

這裏是我的代碼:

import snakemq.link 
import snakemq.packeter 
import snakemq.messaging 
import snakemq.message 

#Build Stack 

my_link = snakemq.link.Link() 
my_packeter = snakemq.packeter.Packeter(my_link) 
my_messaging = snakemq.messaging.Message("tyler", "", my_packeter) 

#Tyler 

my_link.add_listener(("", 4000)) 
my_link.add_connector(("localhost", 4001)) 

#Sally 

my_link.add_connector(("localhost", 4000)) 
my_link.add_connector(("localhost", 4001)) 

#Paul 

my_link.add_connector(("localhost", 4000)) 
my_link.add_listener(("", 4001)) 

#Run link loop (it drives the whole stack) 

my_link.loop() 

#Tyler wants to send a message to Sally 
#drop after 30 seconds if the message can't be delivered 

message = snakemq.message.Message(b"Hello", ttl = 600) 
my_messaging.send_message("Sally", message) 

#receiving callback 

def on_recv(conn, ident, message): 
    print(ident, message) 

my_messaging.on_message_recv.add(on_recv) 

我收到的錯誤:

Traceback (most recent call last):
File "C:/Users/Owner/Desktop/snakemq tutorial/test.py", line 10, in my_messaging = snakemq.messaging.Message("tyler", "", my_packeter)
File "C:\Python32\lib\site-packages\snakemq-1.2-py3.2.egg\snakem\message.py",
line 30, in init assert type(data) == bytes
AssertionError

回答

0

看起來您正在錯誤地構建Message

根據商務部,http://www.snakemq.net/doc/api/messaging.html#message,構造函數是

class snakemq.message.Message(data, ttl=0, flags=0, uuid=None) 

但在這一行,

my_messaging = snakemq.messaging.Message("tyler", "", my_packeter) 

你逝去的"tyler"""my_packeter不函數定義相匹配。

你應該試試這個

my_messaging = snakemq.messaging.Message(b"tyler") 
+0

我所做的修改建議安東尼現在II出現此錯誤: 「」'回溯(最近通話最後一個): 文件「C:\用戶\用戶\ Desktop \ snakemq tutorial \ test.py「,第20行,在 my_link.add_connector((」localhost「,4001)) 文件」C:\ Python32 \ lib \ site-packages \ snakemq-1.2-py3.2。 egg \ snakemq \ link.py「,第297行,add_connector raise ValueError(」connector'%r'already set,address) ValueError:(「connector'%r'already s et「,('127.0.0.1',4001))''' –

+0

如果我的答案解決了您的問題,您應該接受答案。新的例外與原始問題完全不同。你應該發佈一個新問題。 –