使用snakemq python 3.2.1断言错误

时间:2015-11-06 14:49:44

标签: python assertion

我正在完成此处的教程: http://www.snakemq.net/doc/tutorial.html

这是我的代码:

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)

我收到错误:

  

追踪(最近的呼叫最后):
  文件" C:/ Users / Owner / Desktop / snakemq tutorial / test.py",第10行,in    my_messaging = snakemq.messaging.Message(" tyler","",   my_packeter)
  文件" C:\ Python32 \ lib \ site-packages \ snakemq-1.2-py3.2.egg \ snakem \ message.py",
    第30行,在 init 断言类型(数据)== bytes
    的AssertionError

1 个答案:

答案 0 :(得分: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")