MessaeHandler是一个接收到达消息的接口,必须被重新实现。
详细说明:
它的派生类可以作为一个MessageHandler(消息处理器)被一个ClientBase 或MessageSession实例注册。
注册后,当消息包(Message packer)到达时,handleMessage()就会被自动调用。
如果是用一个ClientBase实例注册的,那么任一个消息到达时(无论来自哪个发送者),上述函数就会被调用。
如果是用一个MessageSession注册的,那么只有消息会话(Session's)对应的那个联系的消息到达时,才调用上述函数。
(译注:MessageSession 怎样去注册,请查看 本博"gloox 之 MessageSession ")
(译注:难道为每一个MessageSession注册不同的MessageHandler?
众多MessageSession共有一个MessageHandler也是可以的吧)
析构函数为虚函数
virtual void handleMessage( Stanza* stanza,
MessageSession* session=0
)
欲想要当消息到达时被通知,那就要重新实现此函数。
参数:
stanza 到达的完整消息节
session 如果是用MessageSession注册的消息处理器(MessageHandler),它表明了消息是来自哪个
Session。
本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/night_cat/archive/2009/06/05/4245634.aspx