实时网络聊天应用程序的架构

时间:2014-09-09 16:54:51

标签: python ajax web chat web.py

我想在python中使用web.py创建一个实时网络聊天应用程序。问题是我不知道如何建筑师'或设计这样的应用程序。

我正在考虑实施此应用的方式如下:

  • 用户登录该应用。
  • 应用程序连接到控制器,该控制器具有推送新消息的推送服务和用于存储新消息的队列服务。
  • 当用户发送消息时,应用程序会向控制器发送带有ajax调用的消息,然后控制器将消息存储在队列中。
  • 然后控制器通过其推送服务将队列中的消息发送给目标用户。

但是我发现这是一个非常糟糕的设计,因为我看到很多ajax请求被发送到这里。我真的不知道这种服务是否有更好的设计或架构。那么请您指出实时聊天应用程序的正确设计吗?

1 个答案:

答案 0 :(得分:2)

亚历,

这是一个可以理解的问题,我最近在构建自己的消息传递应用程序时考虑过这个问题。这是我破坏应用程序功能的方式:

       User registration
       User authentication
       Adding a new friend by username
       Approving a friend
       Messaging with a friend in list (Of course)
       Shows online and offline users
       Runs a background service in order to get messages even when the application is closed.
       Uses notification area when a new message is received.
       Quiting the application(kills the background service)

构建此应用程序后我意识到的一些事情是:

  1. 后端架构是简单的CRUD应用程序与pub / sub功能的简单混合。您可以阅读有关发布/订阅系统here的更多信息。 Here是使用Ruby on Rails构建的简单聊天应用程序。您可以查看它以供参考,它的架构非常好。
  2. 您应该像在最后一样考虑此应用程序开头的上述功能中列出的最后步骤。如果你在开始时很好地构建它,最后的步骤就会到位! : - )
  3. 如果您想了解并发性并做一些非常酷的事情,我建议您尝试实施一些讨论过的here框架。
  4. 如果您有任何疑问,请与我们联系!