[英]Node.js architecture and app structure
我一直在用socket.io構建一個簡單的基於Node / Express的聊天客戶端,在添加依賴項的導入方式與使用閉包將依賴項傳遞給組件之間有些困惑。
該應用的結構如下:
創建一個socketIO客戶端需要一個express.Server實例。 但是,我仍然需要Express Server的控制器中的socketIO客戶端API(發出/廣播更新)。 因此,套接字客戶端由index.js導出為承諾,該承諾在解析后將用於設置用於express的控制器。
問題:在哪里連接組件的好方法是什么?
實際代碼: https : //github.com/vsr4493/chatbox
在Node.js生態系統中,沒有構造項目組件的首選方法,尤其是對於不同的業務案例。
我已經實現了一個類似的Web應用程序,該應用程序在快速控制器中需要socket.io
實例,並且有一個相同的問題:“我應該如何在控制器中訪問socket
對象?”。
我所做的就是用套接字事件替換了Express控制器。 因此,您的代碼庫可以變成以下內容:
io.on('connection', function(socket){
socket.on('join', function(user) {
userStore.join(user)
emitOnlineCount()
})
function emitOnlineCount() {
io.sockets.emit("onlines", userStore.getUsers().length)
}
})
您可以隨時保持代碼的清潔和簡單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.