2012-09-06 46 views
1

我用xmpp写了应用程序。它使用gtalk发送消息。我想打印收到的消息。我能怎么做?我的应用程序短代码如下。python-xmpp收到消息

def process_message(): 
    client = xmpp.Client('gmail.com') 
    client.connect(server=('talk.google.com',5223)) 
    client.auth(user,passwd, 'botty') 

    to = raw_input("to: "); 
    if client: 
     message = raw_input("message: ") 
     client.send(xmpp.Message(to,message)) 

if __name__ == "__main__": 
    user = raw_input("User: ") 
    passwd = getpass.getpass("Pass: ") 
    process_message() 

回答

0

您需要注册一个事件处理传入的消息,使用Client.registerHandler。查看示例客户端代码,如thisthis one。例如,后者实现如下的消息处理函数:

def xmpp_message(self, con, event): 
    type = event.getType() 
    fromjid = event.getFrom().getStripped() 
    if type in ['message', 'chat', None] and fromjid == self.remotejid: 
     sys.stdout.write(event.getBody() + '\n')