java - 从 socket.io 从 android 发送 JSON 数据

标签 java android json node.js sockets

我用过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/

相关文章:

java - 烫 'multiple map()'优化

android - 如何将Image的选定区域设置为ImageView

c# - 将数据库 A 与从数据库 B(Web 服务)检索的 xml 数据同步,并插入、更新、删除缺失的列

java - XSD:将元素的属性值限制为父属性的子字符串

java - 自动调整 JTabbedPane 大小

java - 如何单击行并使用托管 bean 传递变量

android - 通过 btn 单击启动 Android 默认电子邮件应用程序

Android:如何显示JSON Post结果

javascript - 无法使用 jquery 发布带有 json 的帖子

json - 如何将 jsonAST.Jint 转换为 int