【问题标题】:Two way communication between android and Serverandroid和Server之间的两种方式通信
【发布时间】:2012-02-22 06:43:15
【问题描述】:

我想在服务器和 Android 之间进行两次通信。从 Android 想要每 10 分钟后将我当前的位置坐标发送到服务器。我可以随时向服务器发送消息或图像。同样,从服务器我想在需要时将数据发送到 Android。

我的应用程序的架构应该是什么。

从 Android 到服务器和从服务器到 Android 的通信是相互独立的,我不应该把它当作双向通信,但事实上我希望双方随时都能进行通信。

我应该使用任何类型的 Web 服务还是只使用网络套接字或其他东西。

【问题讨论】:

    标签: android web-services sockets


    【解决方案1】:

    您可以使用websockets 或...

    只需使用普通请求将数据从手机发送到服务器。当您想从服务器向电话发送内容时,您可以使用推送通知 (C2DM),如果您收到此类推送消息,您就知道服务器有数据供您使用,电话可以使用正常请求下载它;-)。这取决于您要发送的数据。有时这种方法会很好,有时最好使用 websockets、TCP 套接字甚至 XMPP 协议;-)

    【讨论】:

    • 这意味着服务器不能明确地向安卓发送数据,而是要求安卓手机来从服务器获取数据?
    • 如果您使用的是 C2DM,是的 - 服务器只能要求手机来从服务器获取数据。如果您将使用套接字 - 您将能够直接向 Android 发送数据。
    【解决方案2】:

    您也可以使用 Acknowledge。您需要在代码中实现 ACK/NACK 逻辑。当您发送数据时,只需等待特定时间段的 ACK。如果未收到 ACK,则需要发送 NACK。这里需要用到一个session-id(双方通信的一种id,可以是任意随机数)。

    你可以在两边都使用这个逻辑。

    【讨论】:

    • 如你所愿?
    • 我要求向我推荐一种服务器和 Android 之间的通信架构。我应该使用 Web 服务或套接字还是其他让我在 Android 和服务器之间传输数据的东西。
    • 哦,好的,对不起,我的误解,您可以按照我的回答使用网络服务
    • 为什么我不应该使用套接字而不是使用 Web 服务。哪一个速度快,因为我希望数据传输速度快,而且一次将有数千个客户端连接到同一台服务器。你能详细说明一下吗?
    • 好吧,我还没有使用 SocketConnection,我使用 Web 服务来发送接收数据。所以我问你同样的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-12
    • 1970-01-01
    • 1970-01-01
    • 2013-02-10
    • 1970-01-01
    相关资源
    最近更新 更多