EnhBase master READ ONLY 0
  • explorer
  • search
a [App]
a CG.EnhBase
a README.md
a app.ts
a [Test]
a test
  • README.md

EnhBase

此模組的目標為提供一個框架,使得各模組可以透過Socket傳訊、執行特定功能等;同時希望降低各模組的依賴項,將單一模組內容以更細的粒度拆分,需要特定功能時才載入對應之模組。

此模組之更新時間與更新之功能不定,如果有任何新想法,歡迎加入Discord群組一起討論。

此模組初期可能會經過大量修改,以確定設計方向,故本模組並不穩定,如想使用請謹慎考慮。

建議可以先查看模組測試的部分,其中的unit_test資料夾可以參考,內含檔案同時是範例實作。

如何使用

可以透過下列程式碼以完成註冊:

let lib_name: string // 函式庫之名稱
let user: BasicUser<any> = CG.EnhBase.core.libManager.registerLib(lib_name);

欲接受傳入資料,請使用下列程式碼:

let socket_unique_name: string // 可辨識之Socket名稱
let socket: Socket = user.createSocket();
socket.on("data", function(data, senderCode) {
    // 處理資料如何使用
})
socket.listen(socket_unique_name);

而欲傳輸資料給目標Socket,請使用下列程式碼:

let target_socket_name // 目標Socket名稱
socket.send("YOUR_DATA", target_socket_name);

變數表功能

接續前面,假設已經取得了BasicUser物件,預設該物件會帶有一個變數表,透過下列程式碼存取:

const varTable = lib.varTable;

預設該變數表會啟用保護功能,禁止外部存取,於v0.0.2引入了保護用的Key,設定為true或false可控制外部是否可存取,未來可能會更動,請謹慎使用。

// enable protection
varTable.setValue(BaseVariableTable.ABILITYS.PROTECT, true, true);
// or
varTable.removeValue(BaseVariableTable.ABILITYS.PROTECT)
varTable.setValue(BaseVariableTable.ABILITYS.PROTECT, true);


// disable protection
varTable.removeValue(BaseVariableTable.ABILITYS.PROTECT)
// or
varTable.setValue(BaseVariableTable.ABILITYS.PROTECT, false, true);

Authors

EnhProject

READ ONLY
  • problem
  • console
No problems have been detected so far.
Ln 1, Col 1, Sel 0
Markdown