Skip to content

How to get multiple parameters in server response. #689

Open
@humanfriend22

Description

@humanfriend22

I am creating an android app with auth and I send data to authorize on my Socket.io Server. I can send the data and handle it on my server just fine, but the server response is where I am getting an error. My server responds with something like this:

socket.emit("authUser-res", 'invalid_credentials',  '_error');

I can listen to the event on the client and read the first parameter just fine, but when I try to read the second one, I get a java.lang.ArrayIndexOutOfBoundsException error. My java event-listener on the client:

client.on("authUser-res", new Emitter.Listener() {
            public void call(Object... res) {
                String message = (String) res[0];
                String userName = (String) res[1];
                authUserServerResponse(message, userName);
            }
        });

When reading res[1], I get this full error:

2021-10-24 15:04:38.412 30240-30416/com.humanfriend22.testpackage E/EventThread: Task threw exception
    java.lang.ArrayIndexOutOfBoundsException: length=1; index=1
        at com.humanfriend22.testpackage.OnloadAuthActivity$2.call(OnloadAuthActivity.java:92)
        at io.socket.emitter.Emitter.emit(Emitter.java:117)
        at io.socket.client.Socket.onevent(Socket.java:318)
        at io.socket.client.Socket.onpacket(Socket.java:269)
        at io.socket.client.Socket.access$100(Socket.java:18)
        at io.socket.client.Socket$2$2.call(Socket.java:88)
        at io.socket.emitter.Emitter.emit(Emitter.java:117)
        at io.socket.client.Manager.ondecoded(Manager.java:368)
        at io.socket.client.Manager.access$1300(Manager.java:22)
        at io.socket.client.Manager$5.call(Manager.java:346)
        at io.socket.parser.IOParser$Decoder.add(IOParser.java:101)
        at io.socket.client.Manager.ondata(Manager.java:353)
        at io.socket.client.Manager.access$900(Manager.java:22)
        at io.socket.client.Manager$2.call(Manager.java:325)
        at io.socket.emitter.Emitter.emit(Emitter.java:117)
        at io.socket.engineio.client.Socket.onPacket(Socket.java:558)
        at io.socket.engineio.client.Socket.access$1000(Socket.java:36)
        at io.socket.engineio.client.Socket$5.call(Socket.java:337)
        at io.socket.emitter.Emitter.emit(Emitter.java:117)
        at io.socket.engineio.client.Transport.onPacket(Transport.java:124)
        at io.socket.engineio.client.Transport.onData(Transport.java:116)
        at io.socket.engineio.client.transports.WebSocket.access$100(WebSocket.java:23)
        at io.socket.engineio.client.transports.WebSocket$1$2.run(WebSocket.java:73)
        at io.socket.thread.EventThread$2.run(EventThread.java:80)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
        at java.lang.Thread.run(Thread.java:764)
2021-10-24 15:04:38.417 30240-30416/com.humanfriend22.testpackage E/AndroidRuntime: FATAL EXCEPTION: EventThread
    Process: com.humanfriend22.testpackage, PID: 30240
    java.lang.ArrayIndexOutOfBoundsException: length=1; index=1
        at com.humanfriend22.testpackage.OnloadAuthActivity$2.call(OnloadAuthActivity.java:92)
        at io.socket.emitter.Emitter.emit(Emitter.java:117)
        at io.socket.client.Socket.onevent(Socket.java:318)
        at io.socket.client.Socket.onpacket(Socket.java:269)
        at io.socket.client.Socket.access$100(Socket.java:18)
        at io.socket.client.Socket$2$2.call(Socket.java:88)
        at io.socket.emitter.Emitter.emit(Emitter.java:117)
        at io.socket.client.Manager.ondecoded(Manager.java:368)
        at io.socket.client.Manager.access$1300(Manager.java:22)
        at io.socket.client.Manager$5.call(Manager.java:346)
        at io.socket.parser.IOParser$Decoder.add(IOParser.java:101)
        at io.socket.client.Manager.ondata(Manager.java:353)
        at io.socket.client.Manager.access$900(Manager.java:22)
        at io.socket.client.Manager$2.call(Manager.java:325)
        at io.socket.emitter.Emitter.emit(Emitter.java:117)
        at io.socket.engineio.client.Socket.onPacket(Socket.java:558)
        at io.socket.engineio.client.Socket.access$1000(Socket.java:36)
        at io.socket.engineio.client.Socket$5.call(Socket.java:337)
        at io.socket.emitter.Emitter.emit(Emitter.java:117)
        at io.socket.engineio.client.Transport.onPacket(Transport.java:124)
        at io.socket.engineio.client.Transport.onData(Transport.java:116)
        at io.socket.engineio.client.transports.WebSocket.access$100(WebSocket.java:23)
        at io.socket.engineio.client.transports.WebSocket$1$2.run(WebSocket.java:73)
        at io.socket.thread.EventThread$2.run(EventThread.java:80)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
        at java.lang.Thread.run(Thread.java:764)

Please Help, I need two parameters for my app to function the planned way.

Thank you in advance.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions