[英]How can to send POST/GET with params via socket.io or call a feathersjs service via socket.io in Android?
我剛剛使用完在我的NodeJS應用feathersjs 。 現在我在 android 上編寫了一個應用程序,通過節點端與我的服務進行通信。 如何通過 android socket 與節點服務(如 find/get/create/update)通信?
下面是我的代碼片段:
try {
mSocket = IO.socket("http://10.0.130.32:3030");
} catch (URISyntaxException e) {
e.printStackTrace();
}
mSocket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
@Override
public void call(Object... args) {
// socket.emit("foo", "hi");
// socket.disconnect();
}
}).on("config", new Emitter.Listener() {
/*
* Android joins to a room after receiving socket's id from another user
*/
@Override
public void call(Object... args) {
try {
JSONObject object = new JSONObject(args[0].toString());
mSocket.emit("join", object.get("socket"));
id = object.getString("socket");
} catch (JSONException e) {
e.printStackTrace();
}
}
}).on(Socket.EVENT_DISCONNECT, new Emitter.Listener() {
@Override
public void call(Object... args) {}
});
mSocket.connect();
我知道你可以使用: mSocket.emit("join", "some data"); 但我想通過帶有參數的套接字調用 REST Api 例如:Android 中的http://10.0.130.32:3030/getID 。
我怎樣才能做到這一點?
使用 Feathers,您可以從 REST 或 Sockets 訪問所有服務方法(find/get/create/etc)。
來自文檔: https : //docs.feathersjs.com/clients/vanilla-socket-io.html
調用服務方法
可以通過發出帶有方法參數的
<servicepath>::<methodname>
事件來調用服務方法。 servicepath 是服務注冊的名稱(在 app.use 中),不帶前導或尾隨斜杠。 將使用方法調用的結果或可能發生的任何錯誤調用遵循 function(error, data) 節點約定的可選回調。params 將在服務方法調用中設置為 params.query。 其他服務參數可以通過 Socket.io 中間件設置。
您可以在該頁面上找到很多示例,但作為一個想法:
socket.emit('messages::find', { status: 'read', user: 10 }, (error, data) => {
console.log('Found all messages', data);
});
請注意,您需要將socket
指向10.0.130.32:3030
應用程序的根目錄: 10.0.130.32:3030
: 10.0.130.32:3030
在 Android for REST Api 調用中,我們使用 HttpURLConnection。 例如對於 GET:
String url = "http://10.0.130.32:3030/getID";
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.