訊息系統包括 記錄
乙個通用的事件***
註冊與解綁事件***
廣播訊息
eventpool 是乙個事件***的物件池,把事件以key-value的形式存入字典,可以新增與移除監聽的事件,並可以通知某個事件的發生
public class eventpoolwhere t:eventargs
///
/// 檢查該委託是否在物件池裡面或者是否已經繫結在物件池的委託上
///
///
///
///
private bool check(int id,eventhandlerhandler)
if (handler == null) return false;
foreach (var item in temp.getinvocationlist())
}return false;
}///
/// 把委託新增到字典池裡面 訂閱
///
///
///
public void subscribe(int id,eventhandlerhandler)
if(!pool.trygetvalue(id,out eventhandlerhandlerlist))
else
else
handler subscribe duplicate!!");}}
}///
/// 取消訂閱
///
///
///
public void unsubscribe(int id,eventhandlerhandler)
}public void sendmessage(object sender,int id,t e)
private void handlerevent(object sender,int id,t e)
if(handlers==null)}}
eventmanager是乙個單例用來管理eventpool
public class eventmanager
return instance;}}
private eventpooleventpool;
private eventmanager()
public void subscribe(int id,eventhandlerhandler)
public void unsubscribe(int id ,eventhandlerhandler)
public void sendmessage(object sender,int id, gameeventargs e=null)
}public abstract class gameeventargs:eventargs
public abstract void clear();
}public enum eventid
新增事件
void start()
void calla( object sender,gameeventargs e)
引數:,活動有變化!!");
}
Unity客戶端設計系列
從進公司到30號離職,一共也有4個月了。期間也是得到了快速的成長,不可否認的得到了很多的長進。也有著諸多的感悟。隨著畢業,也是離開的時候了,也是再次開始一次系列的總結的時候了。想談的東西很多,大的類別從 專案架構,業務邏輯可大致區分兩類。前者可拆分出專案解決方案,包括架構設計,設計模式,具體而言有 ...
nats 客戶端訊息傳送
parser.parse解析訊息,通過狀態機流轉,得到是pub訊息,呼叫client.processpub處理,解析 得到subobject物件,一些合法性校驗 狀態機切換,獲取剩餘訊息內容進入client.processinboundmsg進行訊息處理 分支選擇client,跳轉進入process...
客戶端通用訊息外掛程式
外掛程式用於這麼幾種情況 1.通過window.opener 子頁面向父頁面傳送資料 2.通過window.open 子頁面向父頁面傳送資料 3.嵌入iframe 父頁面向iframe中頁面傳送資料 客戶端通用訊息門戶框架 returns function 訊息管理的視窗列表 windows 訊息匯...