首页 > 解决方案 > 有时重复的消息在套接字中突然接收和发送

问题描述

我在使用简单的 java 套接字客户端时遇到问题:连接已正确建立,服务器和客户端都接收和发送数据。但有时消息接收和发送 2 或 4 次。我使用了以下库https://github.com/socketio/socket.io-client-java

Application类中套接字的初始化

public static Socket getSocket() {

    if (mSocket == null) {
        try {
            IO.Options opts = new IO.Options();
            String[] opt1 = new String[1];
            opt1[0] = "websocket";
            opts.transports = opt1;
            //opts.reconnection = true;

            //opts.reconnection = false;


                mSocket = IO.socket(BuildConfig.SOCKETURL);


        } catch (URISyntaxException e) {
            Log.i("SOCKET", "info>>" + e.getMessage());
            throw new RuntimeException(e);
        }
    }

    return mSocket;
}

Activity类中接收事件代码

socket?.on("newMessage", object : Emitter.Listener {
        override fun call(vararg args: Any?) {
           // logic after call back goes here
                }
            }
        }
    })

问题是有时会多次触发“newMessage”事件,因为onDestroy()事件socket?.off("newMessage")未注册。

标签: javaandroidkotlinsocket.io

解决方案


推荐阅读