Python分布式/联网的Web应用程序

时间:2012-09-13 19:54:03

标签: python web-applications distributed

我应该构建一个小而简单的分布式(或网络)Web应用程序,其中节点可以直接相互发送消息。我不知道如何处理这个问题。我知道如何通过套接字编程和桌面UI构建一个简单的分布式应用程序,我也知道如何制作一个简单的应该说传统的服务器 - 客户端Web应用程序,但通过使用Web技术制作分布式Web应用程序......好吧我没有线索。

这个想法是拥有一个至少有一个服务器和3个以上客户端节点的小型系统。客户端节点应该能够与彼此以及服务器交换消息。客户端必须能够在浏览器上显示交换的消息。我已经从这里阅读了教程,指南甚至一些有关如何可能做到这一点的相关问题,但我不仅仅是得到它。我甚至不知道从哪里开始。

我应该尝试使用Django和AJAX吗?与他们一起,我再次坚持认为流量只在服务器和客户端之间,而不是在客户端之间。

我已经坚持了一个星期了,我已经非常绝望了。有什么提示做什么?非常感谢任何帮助。

感谢。

3 个答案:

答案 0 :(得分:2)

您可以使用zeroMQ

是一种高性能异步消息库,旨在用于可伸缩的分布式或并发应用程序。它提供了一个消息队列,但与面向消息的中间件不同,ØMQ系统可以在没有专用消息代理的情况下运行。该库旨在具有熟悉的套接字式API。

答案 1 :(得分:1)

基本上,您应该设置服务器侦听传入的客户端连接。然后,当它从其中一个客户端收到消息时,它应该将消息发送到所有连接的客户端。

困难的部分是您需要维护与每个客户端的开放连接。如果您使用像Django这样的Web应用程序框架,这有点复杂。

您也可以自己编程服务器。它在概念上比使用Django或Ajax更干净,也是一个很好的学习练习。使用python SocketServer库。该库中的示例已包含聊天客户端和服务器。

或者,您可以使用Tornado网络服务器和websockets进行尝试。 Tornado是一个高性能的异步网络服务器。 Websockets是相当新的javascript功能,允许您保持从服务器到客户端的永久连接。

答案 2 :(得分:1)

asyncoro,用于异步,并发,分布式,网络编程的Python框架,支持消息传递和通道,以便轻松进行对等通信。如有必要,您还可以使用套接字来交换消息。示例目录中的文件'remote_coro _ * .py'和'remote_channel _ * .py'应该可以帮助您启动。

免责声明:我开发了asyncoro。