我想从网络控制机器人,机器人连接到Android设备。操作如下:
使用JavaScript和HTML编写的Web应用程序在台式计算机上运行,该计算机从用户接收键盘输入并将其发送到连接到机器人的Android设备。
android设备接收命令,然后将它们发送到用于控制机器人的Arduino板。
但是我应该如何将数据传送到没有静态IP地址的Android设备?
我有两种方法可以解决这个问题:
JavaScript应用程序将键盘输入发送到Web服务器运行PHP和MySQL,然后php应用程序将数据存储在MySQL数据库中。应用程序在连接到该Web服务器的Android上运行,并从MySQL数据库中提取数据。
JavaScript将数据发送到Web服务器。连接到Web服务器的Android应用程序直接接收数据,因此Web服务器仅用作中继。
第一种方法很容易,但速度慢,所以我的问题是......
如何实施第二种方法以及我应该使用哪些网络技术来实现它?如何使Web服务器作为双方之间的中继工作?
PS:我打算使用000webhost.com作为网络服务器。所以我不会使用我自己的服务器
答案 0 :(得分:1)
您可以让Android应用程序轮询网络服务器以查找未完成的命令。这在数据使用方面效率不高,但如果您使用无限制的3G计划/ Wi-Fi,您可以忍受它。它将非常容易实现。
或者,在服务器上设置TCP服务器,让Android应用程序打开与服务器的套接字连接。这样,您的Web应用程序就可以向服务器发送命令,这些命令会立即将它们流式传输到Android设备。实施起来会稍微困难一些,但如果做得好,效率会更高,更强大。
PS - 大多数共享服务器不允许您在主机上打开TCP服务器,因此您可能被迫使用第一个选项。
PPS - 我不知道Google Cloud Messaging。对您来说,这似乎是一个很好的解决方案。你应该看看它。