我用过https://github.com/Gottox/socket.io-java-client用于android中的套接字编程。现在我收到 JSON 响应,现在我想从我的 android 应用程序将 JSON 数据发送到这个 node.js 服务器,请帮助我。这是我的代码
buttonConnect.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// socket = null;
try {
SocketIO socket = new SocketIO(
"http://104.131.225.38:8001/");
socket.connect(new IOCallback() {
@Override
public void onMessage(JSONObject arg0,
IOAcknowledge arg1) {
try {
Log.i("Server saidwsssss:",
"sssss" + arg0.toString(2));
} catch (JSONException e) {
e.printStackTrace();
}
}
@Override
public void onMessage(String arg0, IOAcknowledge arg1) {
Log.i("Server said:", "" + arg0);
}
@Override
public void onError(SocketIOException arg0) {
Log.i("OnError", "" + arg0);
}
@Override
public void onDisconnect() {
Log.i("Connection Terminated",
"Connection Terminated");
}
@Override
public void onConnect() {
Log.i("Connection Established",
"Connection Established");
}
@Override
public void on(String arg0, IOAcknowledge arg1,
Object... arg2) {
Log.i("Server Trigger Event:", "" + arg0 + ""
+ arg1);
if (arg0.equals("nbUsers")) {
Log.i("DONE", "DONE" + arg0.toString());
}
Object[] arguments = arg2;
Log.i("Args", "" + arguments[0].toString());
}
});
socket.send("hello server");
socket.emit("event", "argument1", "argument2", 13.37);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
最佳答案
您可以使用允许将您的对象转换为 JSON 字符串的 Gson 对象,并将转换应用于 JSONObject,如下所示:
Entity en = new Entity();
Gson gson = new Gson();
try {
JSONObject obj = new JSONObject(gson.toJson(en));
socket.emit("entity", obj);
} catch (JSONException e) {
e.printStackTrace();
}
我就是这样做的。要使用 Gson,您应该添加一个 Gradle 依赖项:
compile 'com.google.code.gson:gson:2.+'
关于java - 从 socket.io 从 android 发送 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25932613/