想象一下,我想做一个用户可以聊天的应用程序,但在视觉上 - 他们会在屏幕上绘制内容。屏幕将被分成两半,每个参与者都会在他们的一半上画一些东西,而另一个参与者会看到它。
在触摸屏上绘制草图应该非常简单,同时为用户提供颜色/画笔选择,橡皮擦等。我需要将用户输入捕获到某种消息中,每种消息都会描述需要的草图动作在远程参与者上重播。
但是这两个用户将如何沟通?我正在考虑JSON + AppEngine + XMPP。
client A
序列化为JSON并将它们推送到AppEngine上,这将存储它们。这种方法 - 在服务器上存储东西 - 比P2P连接更好吗?由于手机A-> AppEngine->手机B往返,可能会增加显着延迟client B
如何检索邮件?我不能持续打开与AppEngine的连接。 this question中有关于推送通知的内容。如果XMPP不起作用,是否需要轮询服务器?答案 0 :(得分:2)
这是一个非常广泛的问题,有许多不同的答案。如果由我决定,我可能会去投票。你不想要一个持续的连接,并且像谷歌的Cloud2Device这样的东西可能对这样的事情有点过分。我想它看起来像这样 -
至于具体的技术,这真的取决于你和你所熟悉的。最简单的方法是使用中央数据库服务器来存储您的积分并生成会话令牌。
答案 1 :(得分:1)
如果您打算使用App Engine,可能会使用Channel API,如here所述。
Channel API在您的应用程序和Google服务器之间创建持久连接,允许您的应用程序实时向JavaScript客户端发送消息,而无需使用轮询。这对于旨在立即向用户更新新信息或将用户输入立即广播给其他用户的应用程序非常有用。一些示例包括协作应用程序,多人游戏和聊天室。通常,在无法预测或编写更新的情况下使用Channel API是一种更好的选择,例如在人类用户之间转发信息或从系统生成的事件中转发信息时。