Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine XMPP和googleappengine的channelapi之间的差异_Google App Engine_Xmpp_Channel Api - Fatal编程技术网

Google app engine XMPP和googleappengine的channelapi之间的差异

Google app engine XMPP和googleappengine的channelapi之间的差异,google-app-engine,xmpp,channel-api,Google App Engine,Xmpp,Channel Api,我正在开发一个应用程序,它不驻留在AppEngine上,具有聊天功能,将通信web客户端(浏览器+javascript)和移动客户端(ActionScript)放入其中。 我正在考虑在AppEngine上使用XMPP协议(然后只使用Google上聊天功能的服务器,其余的仍保留在我的服务器上)。你能告诉我这是否可行吗? 与Channel API有什么区别? 谢谢据我所知,ChannelAPI是Google XMPP服务背后的支柱。如果您想在客户端的JavaScript和GAE上托管的Webapp之

我正在开发一个应用程序,它不驻留在AppEngine上,具有聊天功能,将通信web客户端(浏览器+javascript)和移动客户端(ActionScript)放入其中。 我正在考虑在AppEngine上使用XMPP协议(然后只使用Google上聊天功能的服务器,其余的仍保留在我的服务器上)。你能告诉我这是否可行吗? 与Channel API有什么区别?
谢谢

据我所知,ChannelAPI是Google XMPP服务背后的支柱。如果您想在客户端的JavaScript和GAE上托管的Webapp之间异步发送/接收(服务器推送)行JSON对象,那么ChannelAPI就是一种方法。

XMPP API有助于应用程序和XMPP客户端之间的通信,如Google Talk


Channel API用于使用web套接字将数据从应用程序推送到web浏览器


两者都可以用作聊天应用程序的一部分;选择取决于聊天客户端是使用XMPP客户端还是使用web浏览器。

通道API使用调用的东西通过IFrame与Google的GTalk客户端通信。此客户端可促进浏览器和应用程序之间的双向通信。为您提供的JavaScript库松散地映射到当前版本,只要AppEngine支持,就可以轻松地从Channel API转换到WebSocket

我相信XMPP是通道API的主干,是功能的超集。例如,XMPP API支持


因此,您可以使用Channel API(浏览器)和XMPP(随处可见)来构建聊天功能。

XMPP和Channel API在堆栈的两个不同级别上解决问题

XMPP描述了一种从一个端点到另一个端点获取消息的通用方法。有针对Windows、Linux、OSX等的现有XMPP客户端,也有编写的现有XMPP客户端库等。如果您只想向您知道已经有XMPP客户端的用户发送文本,那么使用XMPP应用程序引擎API是显而易见的解决方案;如果您希望对客户机体验有大量的控制权,并且有时间花在上面,那么使用现有的XMPP库并定制客户机可能是一个不错的选择

Channel API描述了用于发送消息的服务器端方法和用于接收消息的客户端方法。appengine实现提供了一个javascript客户端,这对于web应用来说是一个棘手的部分,因为它需要一个持久的HTTP连接。您当然可以在另一个平台上使用任何您喜欢的方式重新实现Channel API(对于App Engine,我们使用Google Talk堆栈;后端使用XMPP,前端使用JSON通过长轮询HTTP连接)


基本问题是实现需要多少抽象。Channel API比XMPP API抽象得多,并提供了一个客户端库来简化javascript连接。

Drew,Channel API不使用web套接字(至少现在是这样),它通过Google的GTalk服务进行传输“Channel API用于使用web套接字将数据从应用程序推送到web浏览器。”我认为这是在模拟Web套接字,我相信他们使用iFrame和回调进行实时通信,而不是Web套接字。