>本文演示了使用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中文网其他相关文章!