java - Android 应用程序和 Web 浏览器之间的套接字通信

标签 java javascript android html sockets

我的 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,但不知道如何初始化和用于此目的 - 希望它非常简单。

最佳答案

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

我刚才看了这个视频“Introduction to Node.js with Ryan Dahl”,他展示了一个基本的例子,几乎可以做你所说的。只是一个想法,再加上这将是一个有趣且快速的实现。

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

关于java - Android 应用程序和 Web 浏览器之间的套接字通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18754834/

相关文章:

java - 在 ArrayList 中显示 ArrayList 的内容

java - 如何解决 Google 服务帐户 Team Drive 创建文件权限不足的错误?

javascript - Polymer - DOM-IF 中的项目在第一次调用中返回 null

javascript - jquery.Event 动态元素

javascript - 屏幕抓取分页数据

android - 如果没有验证证明、 session 信息、临时证明或注册 ID,则无法创建 PhoneAuthCredential。(导致 firebase 新更新)

java - 带有图像背景的 toast

java - Java 中的 TSV 解释器

java - 哲学家用餐时 Java 中的信号量问题

android - 在同一个ListAdapter中显示不同的对象