資源簡(jiǎn)介
之前已經(jīng)做了一個(gè)版本:http://download.csdn.net/download/onlyxiahui/9347191
不過(guò)功能太少了,于是繼續(xù)完善了下,主要增加了群聊、表情發(fā)送、來(lái)消息后頭像和系統(tǒng)托盤(pán)跳動(dòng)、圖片發(fā)送、窗口抖動(dòng)、視頻聊天等。不過(guò)視頻聊天問(wèn)題比較多,畢竟這只是寫(xiě)著玩。
代碼片段和文件信息
package?com.oim.app;
import?org.apache.log4j.Logger;
import?com.oim.business.handler.PersonalHandler;
import?com.oim.common.app.controller.ControllerFactory;
import?com.oim.common.app.handler.SendHandler;
import?com.oim.common.app.handler.SendHandlerFactory;
import?com.oim.common.app.manage.Manage;
import?com.oim.common.app.manage.ManageFactory;
import?com.oim.common.app.service.Service;
import?com.oim.common.app.service.ServiceFactory;
import?com.oim.common.app.view.AbstractView;
import?com.oim.common.app.view.ViewFactory;
import?com.oim.common.task.ExecuteTask;
import?com.oim.common.task.QueueTaskThread;
import?com.oim.net.connect.MessageHandler;
import?com.oim.net.connect.SocketConnector;
import?com.oim.net.server.Handler;
import?com.oim.net.thread.HeadPulseThread;
import?com.oim.ui.view.LoginView;
import?com.only.net.action.ConnectBackAction;
import?com.only.net.action.ConnectStatusAction;
import?com.only.net.connect.ConnectThread;
import?com.only.net.connect.WriteHandler;
import?com.only.net.data.Data;
import?com.only.net.data.action.DataBackAction;
import?com.only.net.data.action.DataSentAction;
import?com.only.net.data.bean.HandlerData;
import?com.only.net.thread.DataReadThread;
import?com.only.net.thread.DataWriteThread;
/**
?*?這是程序的上下文,方便各個(gè)模塊之間調(diào)用
?*?
?*?@author?XiaHui
?*?@date?2015年3月6日?上午9:30:30
?*/
public?class?AppContext?{
protected?final?Logger?logger?=?Logger.getLogger(this.getClass().getName());
private?Handler?handler;//負(fù)責(zé)處理TCP接受到的消息
private?SocketConnector?connector;//連接實(shí)體
private?ConnectThread?connectThread;//處理連接的線程
private?DataReadThread?dataReadThread;//處理回掉信息的線程
private?DataWriteThread?dataWriteThread;//處理發(fā)送信息的線程
private?ControllerFactory?controllerFactory;
private?ViewFactory?viewFactory?=?new?ViewFactory(this);
private?ServiceFactory?serviceFactory?=?new?ServiceFactory(this);
private?ManageFactory?manageFactory?=?new?ManageFactory(this);
private?SendHandlerFactory?sendHandlerFactory?=?new?SendHandlerFactory(this);
private?HeadPulseThread?headPulseThread?=?new?HeadPulseThread();//處理頭像跳動(dòng)的線程
private?QueueTaskThread?queueTaskThread?=?new?QueueTaskThread();//用于執(zhí)行一些耗時(shí)的線程任務(wù)
private?boolean?login?=?false;//用來(lái)標(biāo)識(shí)是否已經(jīng)成功登錄了
public?AppContext()?{
long?time?=?System.currentTimeMillis();
initApp();
System.out.println(“initApp“?+?(System.currentTimeMillis()?-?time));
initAction();
System.out.println(“initAction“?+?(System.currentTimeMillis()?-?time));
}
/**
?*?初始化各個(gè)模塊
?*/
private?void?initApp()?{
controllerFactory?=?new?ControllerFactory(this);
handler?=?new?Handler();
connector?=?new?SocketConnector(handler);
dataWriteThread?=?new?DataWriteThread();//?數(shù)據(jù)發(fā)送線程
dataReadThread?=?new?DataReadThread();//負(fù)責(zé)消息回掉的線程
connectThread?=?new?ConnectThread();
connectThread.setConnector(connector);
handler.setControllerFactory(controllerFactory);
handler.addMessageHandler(new?MessageHandler()?{
@Override
publi
評(píng)論
共有 條評(píng)論