* 刷新消息,会根据session的类型来具体组织消息
* </p>
* <br>
*/
public void flush() {
IoSession session = BootChat.service.getIoSession(sessionId);
if(session == null || session.isCloseing()){
return;
}
ProtocolType type = (ProtocolType) session.getAttribute("TYPE");
PlayerManager manager = PlayerManager.getInstance();
Vector<OutputMessage> vector = manager.getPlayerDatas(playerId);
switch(type) {
case CMWAP:
OutputMessage[] outMsgList = null;
synchronized (vector) {
outMsgList = new OutputMessage[vector.size()];
for(int i=0; i<vector.size(); i++) {
outMsgList[i] = vector.get(i);
}
vector.clear();
}
CmWapBindMessage wapMessage = MessageFactory.createCmWapBindMessage(outMsgList);
session.write(wapMessage);
break;
case CMNET:
synchronized (vector) {
for(OutputMessage outMsg : vector) {
session.write(outMsg);
}
vector.clear();
}
break;
}