【问题标题】:Socket communication between Android app and web browserAndroid 应用程序和 Web 浏览器之间的套接字通信
【发布时间】:2013-09-12 03:26:43
【问题描述】:

我的 Android 设备+应用程序每隔几毫秒就不断地发送数据,我想在我使用 JavaScript/HTML 构建的网络浏览器应用程序上接收它。

在 Android/Java 应用程序中,我通过套接字执行以下操作:

//Initialize, where PORT = local ip of my laptop with web server I guess.
//and I choose an available port on my network, say 8080. 
echoSocket = new Socket(HOST, PORT);
out = new PrintWriter(echoSocket.getOutputStream(), true);

//Sending data every few ms:
JSONObject j = new JSONObject();
j.put("x", params[0]);
j.put("y", params[1]);
j.put("z", params[2]);
String jString = j.toString();
out.println(jString);

所以我有类似{"x": 1.0023532, "y": 2.454234, "z": 6.234583} 的东西。

在其他 Java 应用程序中,我通过让我的接收器应用程序在上面使用的特定 PORT 上创建一个 ServerSocket 来完成这种通信。然后,只要我的笔记本电脑有正确的本地 IP 地址,我就可以做到serverSocket = new ServerSocket(PORT); 等。

现在,如何在 Web 应用程序 (JavaScript/HTML) 中接受这些数据?我听说过 websockets,但不知道如何为此目的进行初始化和使用——希望它非常简单。

谢谢。

【问题讨论】:

  • 您是否建议您的服务器接收数据将仅使用 html/javascript 运行?
  • 我不能直接在浏览器中接收我的套接字数据吗?
  • 你可以,但你需要一个服务器与andoird应用程序通信,然后浏览器与服务器通信。我不相信您可以使用 javascript 运行服务器套接字。您需要类似 nodeJs、java 或 php 的东西(考虑到您发送的数据量,我会回避在 php 中执行此操作) - 如果您有语言偏好,如果您愿意,我可以给您一个示例

标签: java javascript android html sockets


【解决方案1】:

我认为在没有中间人(服务器)的情况下直接向浏览器发送数据是不可能的。如果你想创建一个快速简单的服务器来来回 ping 数据,我会在 NodeJs 中找到一些乐趣。我还没有机会使用这些东西,但我确实玩得很开心。如果您只是在客户端之间来回 ping 数据,则可能需要特别研究一下。

我不久前观看了这个视频“Introduction to Node.js with Ryan Dahl”,他展示了一个基本示例,与您所说的差不多。只是一个想法,加上这将是一个有趣且快速的实现。

附带说明,如果您想将它带到实时服务器,我确实相信 Amazon AWS 有一个 Node JS 实例。我很确定您可以免费设置一个微型实例。

【讨论】:

  • 谢谢,我会考虑使用 NodeJS。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-13
  • 2015-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-08
相关资源
最近更新 更多