有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

安卓如何使用Http连接,比如Java中的TCPsocket

我在这里的要求可能有点高,但我对社区有信心,所以值得一试。我正在制作一个游戏,并尝试选择用于Java移动客户端和Java服务器后端之间通信的连接类型

Java中的Socket编程很简单——在这个主题上有一个lovely tutorial,双向通信很简单

问题是,在移动客户端(Android)上,不能保证蜂窝网络会允许您进行TCP连接。这让我觉得使用HTTP连接是一个不错的选择

HTTP连接是基于请求的,但我需要一种将通知从服务器推送到客户端的方法。这个问题的解决方案似乎是使用“长轮询”,我读了一些关于它的文章,但还没有看到一个简单的例子来说明我试图实现的目标

同样,我可能会问很多问题,但这似乎是一个相当常见的问题,是否有一个库或框架,我可以导入/使用它来包装Http连接,并提供一个双向长期连接(自动重新连接等)。我读了一些关于cometD的书,但它似乎没有一个Java库,我可以随便拿起

我需要的沟通不是沉重的,不是持续的双向数据流,只是偶尔的更新,无论哪种方式都可以让游戏继续

提前感谢你筛选我的无知

加文


共 (1) 个答案

  1. # 1 楼答案

    Comet模型试图在使用HTTP时解决这个问题。这里有一些Java示例here

    在客户端,您会发现一些主要讨论ajax/XMLHttpRequest的示例/文章,但真正需要做的是确保使用一个使用http/1.1和http keepalive的客户端库,并在循环中“轮询”URL

    这个想法是服务器阻塞,直到有值得注意的事情发生,才会向您发送响应,虽然http keepalive可以在请求之间保持与服务器的连接,这样你就不用为每个请求设置新的TCP连接——我假设android已经有了一个标准的http库,可以为你处理所有这些,包括重新连接

    在服务器端,Tomcat支持上面developerworks文章中提到的Comet处理——除非您想在servlet中“手动”完成它,这也是非常直接的,直到您需要真正扩展数量。。客户的。s、 还有一些框架,比如gwt-comet