【问题标题】:How to push data from local server to Android Device - No GCM, No Internet Connection如何将数据从本地服务器推送到 Android 设备 - 无 GCM,无 Internet 连接
【发布时间】:2013-10-22 08:25:20
【问题描述】:

有没有办法在没有互联网连接的情况下将数据从本地服务器(托管在 Intranet 上)推送到 Android 应用程序?该应用程序应该只能在通过 wifi 的 LAN 上运行。由于互联网连接不可用,GCM 无法显示。但是,该应用程序将始终在两台设备上运行。

我所说的模型是这样的:

设备:本地服务器 - Wifi 连接 - Android 设备 1、Android 设备 2

Android 设备 1 通过 wifi 更新本地服务器上的一些数据...服务器需要通知 Android 设备 2 关于通过 Wifi 进行的更改。

非常感谢您的帮助

【问题讨论】:

  • 您是否看过可以通过 wifi 在本地运行的 websockets,只需为设备提供服务器的地址,它应该可以正常工作。看看socketIO。
  • 我在家里使用了 Sockets 来开发应用程序。我按照本教程进行操作,非常容易理解,并移植到 Android 中。 docs.oracle.com/javase/tutorial/networking/sockets/…

标签: android push-notification push


【解决方案1】:

是的,有可能。

我使用套接字连接来做到这一点。

requestSocket = new Socket();
SocketAddress socketAddress = new InetSocketAddress(ipAddress, portNumber);                 
requestSocket.connect(socketAddress, timeOutPeriod);

在服务器端,您需要使用您喜欢的任何语言打开这些套接字和端口。之后,您可以使用流读取或写入数据。

【讨论】:

  • 我已经尝试过和上面一样。出现如下错误 System.err: java.net.SocketException: socket failed: EACCES (Permission denied)
【解决方案2】:

您应该查看类似socketIO 之类的内容,用于不久前在项目中使用的内容,只要您知道服务器地址并且在两台设备上都相同,您应该能够将数据推入和推出来自任何设备的服务器。我们一群人用它来做笔记应用程序。您可能需要在 html 和 javascript 中构建您的应用程序,除非您想使用同样可以完成这项工作但需要更多工作的 java 套接字通信。

【讨论】:

  • 感谢您的回答。我需要更多信息。 WebSockets 和普通套接字有什么区别?对于我的用例,本地服务器在具有 MySQL 数据库连接的 Windows 中运行。所以如果我想使用SocketIO,那么我必须为Windows本地服务器编写基于SocketIo的Server代码和Android App中的Client代码。 ?如果我使用 SocketIO,它是否具有 PUSH to Android 应用功能?
  • 要使用 socketIO,您需要为 socketIO 构建一个服务器端服务器系统,这通常在 node.js 中完成,但可以使用其他语言完成,例如 python。不确定推送到 android 应用程序功能通常编程为 html5 应用程序并将其与 triggerIO 之类的东西打包在一起,使其以设定的时间间隔轮询更改。
【解决方案3】:

也许你可以使用消息服务器来实现消息队列

【讨论】:

    猜你喜欢
    • 2014-07-14
    • 2013-03-04
    • 1970-01-01
    • 2014-10-21
    • 1970-01-01
    • 1970-01-01
    • 2011-11-11
    • 2018-07-12
    • 1970-01-01
    相关资源
    最近更新 更多