我试图找出一种使用Node作为客户端的方法,它将数据发送到侦听 Android 应用程序的服务器。android 应用程序最初将使用其公共 IP 地址和它将侦听的端口(套接字)向 Node 服务器发送一个 post 请求。一旦有任何新内容,Node 服务器就会通过注册的套接字向该特定应用程序发送一个 JSON 数据包。这在 Node 中是可能的,如果不是,我如何在 Javascript 中实现它,或者实现它的最佳方法是什么?这是Android应用服务器public class AndroidAppLocalServer { Activity activity; ServerSocket serverSocket; String message = ""; static final int socketServerPORT = 8080; public AndroidAppLocalServer(Activity activity) { this.activity = activity; Thread socketServerThread = new Thread(new SocketServerThread()); socketServerThread.start(); } public int getPort() { return socketServerPORT; } public void onDestroy() { if (serverSocket != null) { try { serverSocket.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
1 回答
一只甜甜圈
TA贡献1836条经验 获得超5个赞
是的,您可以在 Node.js 中执行此操作,假设该应用程序在实际可公开访问的手机上运行。由于您在 Android 应用程序中使用的是普通 TCP 套接字,因此您可以先通过使用诸如netcat或 之类的工具手动连接套接字来进行验证telnet(例如,netcat <PUBLIC-IP> 8080)。
如果这可行,您可以使用net.Socket该类在 Node.js 中执行相同的操作。
const net = require('net');
const client = new net.Socket();
client.connect(8080, '<PUBLIC-IP>', () => {
// callback, when connection successfull
client.write('Data sent to the App');
});
client.on('data', (data) => {
// callback, when app replies with data
});
client.on('close', (data) => {
// callback, when socket is closed
});
但是,根据您实际尝试实现的目标,您可能需要查看 Android 应用程序通常如何实现推送通知。
添加回答
举报
0/150
提交
取消