java - 如何在聊天应用程序中将人们连接到随机伙伴?

标签 java google-app-engine

我正在开发一个在 GAE 上托管的应用程序。基本上我的应用程序需要随机连接人们。

我之前做过类似的应用程序,我为每个用户分配了唯一的 ID。一旦用户进入应用程序,他的 ID 将被插入到静态同步 LinkedHashSet(其作用类似于应用程序的全局数据存储)。类似地,第二个用户输入同步 LinkedHashSet,如果他找到了除他的 ID 之外的 ID,然后将它们连接起来。第二个用户从 LinkedHashSet 中删除了他们的 ID,并将它们成对插入到 Mysql 数据库中。请注意,对 LinkedHashSet 的访问是同步的。

现在我想在云环境中设计类似 GAE 的应用程序。但是在 GAE 中,由于应用程序引擎的分布式特性,静态变量不是全局的。如何在云环境中编写类似的代码?

最佳答案

有多种方法可以解决这个问题。您可以很好地结合使用 Channel API、DataStore API、Memcache API 来提供可扩展的实时聊天室应用程序。 这是一篇关于创建多用户聊天室应用程序的好文章 - http://codecontrol.blogspot.com/2010/12/multiuser-chatroom-with-app-engine.html , http://code.google.com/p/channel-tac-toe/

您将不得不使用数据存储来存储 LinkedHashSet 并将其进一步缓存在 memcache 中以便更快地访问。

关于java - 如何在聊天应用程序中将人们连接到随机伙伴?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7517711/

相关文章:

python - 我可以在 Google App Engine 中使用 Java 科学库吗?

python - 405 不允许方法 - 在 Google App Engine 中获取请求,语言 Python

java - Java中的树实现(根, parent 和 child )

java - 如何编译 Android Studio 项目(Java)代码以兼容跨平台设备?

java - junit 中是否有 @AfterMethod 的替代方案?

java - coverage.ec 文件格式

java - 使用 Maven 将 jar 文件从一个项目复制到另一个项目

java - Google App Engine 用户服务在内部是如何工作的?

database - 在 App Engine 数据存储中查找重复项

python - 做一个 ONE :ONE relation on google app engine datastore 最有效的方法是什么