Python分布式/网络化web应用程序

2024-06-01 06:29:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我应该构建一个小而简单的分布式(或者更确切地说是网络化的)web应用程序,在这个应用程序中,节点可以彼此直接发送消息。但我不知道该怎么做。我知道如何通过socket编程和桌面UI来构建一个简单的分布式应用程序,我也知道如何制作一个简单的传统服务器-客户端web应用程序,但是要使用web技术制作分布式web应用程序。。。我不知道。在

这个想法是有一个小型系统,至少有一个服务器和3个以上的客户机节点。客户机节点应该能够相互交换消息,也可以与服务器交换消息。客户端必须能够在浏览器上显示交换的消息。我读过一些教程,指南,甚至一些相关的问题,关于如何做到这一点,但我不只是明白。我真的不知道从哪里开始。在

我应该尝试使用Django和AJAX吗?对他们来说,我又一次陷入了这样的想法,即流量只在服务器和客户端之间进行,而不是在客户端之间。在

我已经坚持了一个星期了,我已经非常绝望了。有什么建议吗?非常感谢任何帮助。在

谢谢。在


Tags: 程序服务器web应用程序消息ui客户端客户机
3条回答

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

困难的部分是你需要保持与每个客户机的开放连接。如果使用像Django这样的web应用程序框架,这有点复杂。在

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

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

asyncoro,一个用于异步、并发、分布式、网络编程的Python框架,支持消息传递和通道,以方便对等通信。如果需要,还可以使用套接字交换消息。examples目录中的“remote\u coro_*.py”和“remote_channel_*.py”文件应该可以帮助您启动。在

免责声明:我开发了asyncoro。在

您可以使用zeroMQ。在

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

相关问题 更多 >