使用Socket和HTTP请求

时间:2014-02-26 00:04:13

标签: android django sockets http tcp

我正在练习Android应用,并且想要求一些关于实现此功能的指示:

当用户A和B同时按住手机上的按钮时,他们可以一起从服务器接收信息。
例如,当A按住屏幕上的按钮时,B也按下B手机上的按钮,服务器将通过“匹配”字符串识别匹配和响应。如果用户A完成后按下按钮,B开始按住,服务器将无法识别匹配。

我想问一下在移动端和服务器端实现此功能的好方法。我应该发送常规HTTP请求并让服务器挂起响应,直到匹配或超时?或者在这种情况下使用Socket会更好吗?

由于

2 个答案:

答案 0 :(得分:0)

理论上,您可以使用HTTP请求或使用套接字来处理它。

您需要考虑网络延迟,尤其是HTTP。也许两个用户每个按下按钮3秒钟,但B开始按时间= 2秒。如果您的网络延迟是1秒以上,则无法匹配。

使用套接字,您可以获得更好的性能延迟。毋庸置疑,最困难的部分是编程两台设备连接的服务器。

答案 1 :(得分:0)

如果我必须从两者中做出选择,我认为就性能而言,最合适的解决方案是Sockets。您只需声明一个套接字,并且在需要之前不要关闭它。可能数据传输将远低于HTTP请求。

我定义了一个无限Thread,它将向服务器发送按钮的状态,即boolean值。服务器需要有一个套接字池并相应地处理它们。

另一种方法是使用Google Cloud Messaging,我认为这个方法甚至更好(虽然实现起来有点复杂,但实施后可能会感激不尽)。这样,您只需向服务器发送状态更改,这样您只需在按钮上实施onClickListener()并发送状态更改即可。使用这种方法传输的数据非常低,因此性能更好。如果您对此方法感兴趣,建议您阅读this