【问题标题】:Is there any python module for sending messages between users in a web application?是否有任何 python 模块用于在 Web 应用程序中的用户之间发送消息?
【发布时间】:2012-09-18 09:48:45
【问题描述】:

我正在使用金字塔建立一个网站,并想在我的网站中找到一些关于在用户帐户之间发送消息的模块。我听说 Rails 有一些类似 https://github.com/ging/mailboxerhttps://github.com/pluginaweek/has_messages 的宝石。

我想找一个蟒蛇。谁能推荐我一些python模块? 谢谢!

【问题讨论】:

  • 我找不到。所以我尝试在数据库中创建一个新表并编写一些简单的函数来自己添加/显示/删除邮件。
  • 你在哪里看过?您是如何尝试找到它们的?

标签: python pyramid


【解决方案1】:

您可能最好使用XMPP 之类的现有协议。例如,对于 Plone(一个 Python CMS),有一个与 collective.xmpp.chat 的完整 XMPP 集成,可在 Plone 站点 (demo video) 的经过身份验证的用户之间提供多用户聊天和即时消息。

对于 Pyramid,您需要自己进行此集成 [1],通过运行 Jabber / XMPP 服务器(例如 ejabberd)并使用 Python 的现有 XMPP 客户端库与其通信。有很多适用于 Python 的 XMPP 库,其中一些在this question 的答案中有所描述。

注意:如果在查看 XMPP 后它看起来复杂,不要害怕。 XMPP 及其扩展描述了与消息传递和状态相关的各种功能,聊天只是其中之一。如果您不需要其他功能,请不要在您的 web 应用中实现它们。

[1] 实际上,有一个 Pyramid 项目似乎正是这样做的:seshat,由@KirkStrauser 编写。我自己没用过,但是看起来很有前途。

【讨论】:

    【解决方案2】:

        不;两个人之间的直接通信在 Web 应用程序中是不可能的,因为他们使用无状态协议;服务器不知道请求是否来自同一个人。
    话虽如此,聊天应用程序通常所做的是将两个人之间的通信存储在数据库中,并使用 AJAX 来检索它们。
    网上已经有很多聊天应用教程和第三方聊天应用包;您可能想检查一下。

    【讨论】:

    • 谢谢,让我检查一下。顺便说一句,你能给我推荐一些吗?
    • 没有。如果协议的无状态是问题,并且服务器不知道来自谁的请求,那么 Web 应用程序将是不可能的
    • @Marcin;除非您通过会话、Cookie、查询字符串、数据库等自己维护状态,否则服务器不知道请求属于谁。
    • @It'sYourFault 正确,只是它不是“你自己”,每个框架都对此提供了大量支持。鉴于您在列表中混合的内容,老实说,我怀疑您是否了解其工作原理。
    • 如果您使用允许数据持久性的框架,那是因为该框架的开发人员在其中内置了该功能。如果您从头开始开发任何应用程序,除非您创建持久性,否则它不是自动化的。这基本上就是我的观点;一定要告诉我这是否/如何是错误的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-26
    相关资源
    最近更新 更多