>本文演示了使用socket.io和backbone.js構建一個簡單的聊天應用程序。 socket.io促進實時,交互式Web應用程序,而Backbone.js則構造了客戶端代碼,以進行更好的管理和解耦。 假定對Node.js和Express的熟悉;骨乾和下劃線知識是有益的。
>密鑰概念:
HomeView
>管理,該>>>>使用HomeModel
。骨幹收集基於模型更改動態更新視圖。 socket.io客戶端處理服務器通信。 'connection'
。 客戶端體系結構:
>圖(請參見下圖)說明了客戶端結構:橋接socket.io客戶端和視圖,基於客戶端輸入更新模型,並通過骨幹綁定在視圖中反映視圖中的變化。 >
客戶端代碼突出顯示:
>管理和HomeModel
collections(使用>和onlineUsers
)。包括用於添加和刪除用戶和聊天的方法。 userChats
UserModel
ChatModel
>
): socket.io client,負責連接到服務器(ChatClient
,http://chatfree.herokuapp.com
,login
,chat
,welcome
,loginNameExists
,loginNameBad
,onlineUsers
)。 它使用userJoined
發送和userLeft
接收消息。chat
>
MainController
(/public/js/main.js):使用事件總線(appEventBus
,viewEventBus
)協調視圖,模型和socket.io客戶端之間的交流。 處理登錄,聊天消息,用戶加入/離開,並相應地更新模型。
> bootstrap(/public/js/main.js):初始化MainController
服務器端實現:
服務器端代碼使用node.js,express和socket.io。
express Server(/scripts/web.js):設置Express Server,從>目錄中提供靜態文件,然後初始化socket.io Server。
public
(/scripts/chatserver.js):>管理在線用戶(ChatServer
array),handles事件,管理用戶登錄(users
> event),處理脫節( 'connection'
事件),管理在線用戶列表(login
事件),並廣播聊天消息(disconnect
>事件)。 它使用onlineUsers
>模型代表連接的用戶。
chat
User
>圖(請參見下圖)說明了客戶端和服務器之間的消息流。
>結論和常見問題解答:
>
以上是使用socket.io的聊天應用程序的詳細內容。更多資訊請關注PHP中文網其他相關文章!