GWT + GAE python:COMET&的框架RPC

时间:2009-12-15 02:42:46

标签: google-app-engine gwt comet rpc

假设我想在客户端使用Google GWT,在服务器端使用Google AppEngine Python。此外,我希望能够对服务器使用RPC调用以及执行基于COMET的交换。

在现有框架方面,我有哪些选择?

4 个答案:

答案 0 :(得分:2)

我通过谷歌搜索“gwt python”:http://code.google.com/p/python-gwt-rpc/ - 它似乎不受支持,因为App Engine现在支持Java。

通过谷歌搜索“gwt comet”:http://code.google.com/p/rocket-gwt - 它应该在你的客户端工作,以便将GET挂起到服务器上,这可以用Python编写。

但我不得不说,如果你只是用Java编写服务器端,那么这样做会容易得多。 GWT和Java是为彼此制作的,它们属于一体,除非你对使用Java编写服务器有强烈厌恶,否则你应该考虑它。

你可以将一些解决方案放在一起,使GWT和Python协同工作,但是在即将推出的GWT版本中它很容易破解,这意味着从长远来看会为你带来更多的工作。

用Java编写服务器。

答案 1 :(得分:1)

一年后,GAE中提供的新渠道API允许这种持久连接,以避免在JavaPython中进行轮询。

Channel API在您的应用程序和Google服务器之间创建持久连接,允许您的应用程序实时向JavaScript客户端发送消息,而无需使用轮询。这对于旨在更新用户关于新信息或立即将用户输入广播给其他用户。一些例子包括协作应用程序,多人游戏和聊天室。一般来说,使用Channel API是比更新不能轮询的情况更好的选择可以预测或编写脚本,例如在人类用户之间传递信息或者不系统地生成事件时。

答案 2 :(得分:0)

App Engine目前不支持comet,因为它不支持hang-GET(例如,长时间运行的请求)。如果你想做彗星,你将不得不使用外部服务,或等待App Engine中的Comet支持。

答案 3 :(得分:0)

你可以借助一个小小的额外服务(我免费托管一个)来做到这一点:

http://www.brightyellowcow.com/blog/Comet-AJAX-push-using-PHP-or-Google-App-Engine.html

该服务的唯一工作是唤醒客户端应用程序,并使用长轮询的ajax请求执行此操作。当上传新数据时,您的应用引擎应用程序会通过http发送服务,这会导致客户端唤醒并返回应用引擎应用程序以获取新数据。