}
// Connection已通过验证
this.connection = conn;
//添加的一个listener,截获所有的message with error的信息
connection.addPacketListener(new MsgErrorListener(),
new AndFilter(new PacketTypeFilter(Message.class),new MessageTypeFilter(Message.Type.error)));
//添加监听所有的发送的msg,用来存储为聊天记录
connection.addPacketSendingListener(new AllOutgoingMsgListener(), new PacketTypeFilter(Message.class));
//添加监听所有的收到的非error类型的message
connection.addPacketListener(new AllIncomingMsgListener(),
new AndFilter(new PacketTypeFilter(Message.class),
new NotFilter(new MessageTypeFilter(Message.Type.error))));
//监听所有的收到的Message,对其调用IncomingMessageListener
connection.addPacketListener(new PacketListener(){
@Override
public void processPacket(Packet packet) {
Message receivedMsg = (Message)packet;
if(incomingMsgListener != null && receivedMsg.getBody()!=null){
incomingMsgListener.handleIncomingMsg(receivedMsg.getType(), receivedMsg);
}
}
}, new PacketTypeFilter(Message.class));
chatManager = conn.getChatManager();
// 添加监听端口,用于控制所有的chat会话
chatManager.addChatListener(new ChatListener());
// 此处必须要加上PacketFilter,否则无法截获
chatManager.addOutgoingMessageInterceptor(new OutgoingMsgMonitor(),
new PacketTypeFilter(Message.class));
outFile = new File(FILENAME);
//建立存储实例
msgStorageManager = new StorageManager();
mucDefaultNickname = conn.getUser();
mucNickname = mucDefaultNickname;