Push notification 用Twisted框架实现服务器推送

Push notification 用Twisted框架实现服务器推送,push-notification,chat,push,twisted,twisted.web,Push Notification,Chat,Push,Twisted,Twisted.web,我正在使用python Twisted框架开发一个群组聊天。我使用的技术是使用Ajax进行长轮询。我正在返回服务器\u尚未\u完成\u以保持连接打开。该代码是非阻塞的,允许其他请求。它有多大的可伸缩性 但是,我想在开放连接上进行流式传输。我想实现一个纯服务器推送。怎么做?我需要去XMPP的方向吗?如果我在服务器上为每个唯一的客户机打开一个套接字,那么哪个web服务器最适合桥接?它的可伸缩性有多大 我希望它和C10K问题一样具有可扩展性。我希望坚持使用Twisted,因为它有许多简单步骤的协议实现

我正在使用python Twisted框架开发一个群组聊天。我使用的技术是使用Ajax进行长轮询。我正在返回服务器\u尚未\u完成\u以保持连接打开。该代码是非阻塞的,允许其他请求。它有多大的可伸缩性

但是,我想在开放连接上进行流式传输。我想实现一个纯服务器推送。怎么做?我需要去XMPP的方向吗?如果我在服务器上为每个唯一的客户机打开一个套接字,那么哪个web服务器最适合桥接?它的可伸缩性有多大


我希望它和C10K问题一样具有可扩展性。我希望坚持使用Twisted,因为它有许多简单步骤的协议实现。请给我指一下正确的方向。Thanx

长轮询有效,但不一定是您的最佳选择。它开始变得非常讨厌与防火墙和脆弱的互联网连接的集成。例如,在工作中,我们的许多客户的防火墙会关闭10-20秒内不活动的HTTP连接

通过通过SSL切换到WebSocket,我们解决了很多问题。WebSocket为您提供了全双工通道,非常适合服务器推送。通过使用SSL,防火墙在垃圾收集方面的攻击性通常较低,并且。即使您使用的是WebSocket而不是长轮询,您仍然需要在应用程序级别管理偶尔的断开连接,但即使这样,也可以通过使用合适的恢复协议来优雅地处理,无论您使用何种传输协议

话虽如此,我们决定使用WebSocket,而不是直接使用WebSocket。选择此选项的主要原因是,SockJS可以在可用时使用WebSocket(rfc6455、hixie-76、hybi-10),但如果客户端浏览器不支持(或者连接失败),也可以使用xhr流、xdr流。当我说它可以“回退”时,我的意思是,您在客户端使用的代码保持完全相同,SockJS负责脏的工作

在服务器端,情况也是如此。我们目前使用的是Twisted(在生产中),但我们也知道实现,我们仍然需要检查。还有一些其他的东西,我们希望检查,例如,和附带的


在性能方面,我们使用SSL终止和负载平衡。HAProxy的,在许多层面上。

长轮询有效,但不一定是您的最佳选择。它开始变得非常讨厌与防火墙和脆弱的互联网连接的集成。例如,在工作中,我们的许多客户的防火墙会关闭10-20秒内不活动的HTTP连接

通过通过SSL切换到WebSocket,我们解决了很多问题。WebSocket为您提供了全双工通道,非常适合服务器推送。通过使用SSL,防火墙在垃圾收集方面的攻击性通常较低,并且。即使您使用的是WebSocket而不是长轮询,您仍然需要在应用程序级别管理偶尔的断开连接,但即使这样,也可以通过使用合适的恢复协议来优雅地处理,无论您使用何种传输协议

话虽如此,我们决定使用WebSocket,而不是直接使用WebSocket。选择此选项的主要原因是,SockJS可以在可用时使用WebSocket(rfc6455、hixie-76、hybi-10),但如果客户端浏览器不支持(或者连接失败),也可以使用xhr流、xdr流。当我说它可以“回退”时,我的意思是,您在客户端使用的代码保持完全相同,SockJS负责脏的工作

在服务器端,情况也是如此。我们目前使用的是Twisted(在生产中),但我们也知道实现,我们仍然需要检查。还有一些其他的东西,我们希望检查,例如,和附带的


在性能方面,我们使用SSL终止和负载平衡。HAProxy的,在许多层面上。

我们现在已经迁移到WebSocket。它工作得非常好

我们现在已经迁移到WebSocket。它工作得非常好

当你问“it的可伸缩性有多大”时,你希望答案是什么形式?当你问“it的可伸缩性有多大”时,你希望答案是什么形式?