2015-11-06 4 views
1

Je travaille à travers le tutoriel trouvé ici: http://www.snakemq.net/doc/tutorial.htmlerreur Assertion avec python snakemq 3.2.1

Voici mon code:

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) 

Je reçois l'erreur:

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

Répondre

0

Il semblerait que vous construisiez incorrectement le Message.

Selon le doc, http://www.snakemq.net/doc/api/messaging.html#message, le constructeur est

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

Mais dans cette ligne,

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

vous passez "tyler", "" et my_packeter qui ne correspond pas à la définition de la fonction.

Vous devriez essayer

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

J'ai fait les changements suggérés Anthony et maintenant ïI obtenir cette erreur: '' 'retraçage (le plus récent appel dernier): fichier « C: \ Users \ Propriétaire \ Bureau \ snakemq tutorial \ test.py ", ligne 20, dans my_link.add_connector ((" localhost ", 4001)) Fichier" C: \ Python32 \ lib \ paquets-de-site \ snakemq-1.2-py3.2. egg \ snakemq \ link.py ", ligne 297, dans add_connector raise ValueError (" connecteur '% r' est déjà défini ", adresse) ValueError: (" connector '% r' déjà s et ", ('127.0.0.1', 4001)) '' ' –

+0

Si ma réponse a résolu votre question, vous devez accepter la réponse. La nouvelle exception est totalement différente du problème original. Vous devriez poster une nouvelle question. –