我目前有一个单页的 Bottle 项目正在通过localhost:8080
.
对于这个问题,假设单页只是一个基本的短轮询聊天,从 Python 中检索聊天对象,其中只包含发送者的姓名和消息的正文。
这些聊天线对象存储在聊天对象中,该项目允许多个聊天。
聊天和发件人由 URL 确定。例如,如果一条聊天线是从 发送的localhost:8080/chat/23/50
,它将作为发送者 50 发送到聊天 23,并将localhost:8080/chat/23/*
在基本overflow:auto
div 中显示聊天 23 的所有聊天线。
当前的短轮询 AJAX 每秒向 Python 请求一次数据。我想让事情变得更加实时,并决定使用长轮询(尽管如果你喜欢 HTML5 WebSockets,我也不介意学习它们)。
我的问题分为两部分:
- 我将如何在这样的聊天系统中实现长轮询方法,最好还是使用 Python 的 Bottle 模块?
- 然后,我将如何通过可从外部访问的实际服务器(即,不仅从本地主机)交付项目?即使通过 LAN 提供它也很好。
我知道长轮询可能会导致 Apache 等服务器出现严重的性能问题,如果可以将这一事实纳入任何答案,我将不胜感激;我想要一个尽可能可扩展的解决方案。
任何帮助表示赞赏!