从 android 的 socket.io 中发送 JSON 数据

Meh*_*hdi 5 java sockets android json node.js

我已经使用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();
            }
        }

    });
}
Run Code Online (Sandbox Code Playgroud)

mfr*_*het 7

您可以使用允许将您的对象转换为 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();
}
Run Code Online (Sandbox Code Playgroud)

这就是我的做法。要使用 Gson,您应该添加 Gradle 依赖项:

 compile 'com.google.code.gson:gson:2.+'
Run Code Online (Sandbox Code Playgroud)