Как заставить клиента Java Socket.IO декодировать / кодировать двоичный файл, а не JSON?

Я использую клиентскую библиотеку Socket.IO из этого репозитория: io.socket:socket.io-client:1.0.0 и серверная библиотека из этого com.corundumstudio.socketio:netty-socketio:1.7.12,

Я излучаю простой объект данных между клиентом и сервером. Сервер работает в двоичном режиме и запускает прослушиватель событий только тогда, когда двоичные данные приходят с этим событием:

socketServer.addEventListener("event", ResponseData.class, new DataListener<ResponseData>() {
        @Override
        public void onData(SocketIOClient client, ResponseData data, AckRequest ackSender) throws Exception {
            // data is a binary
        }
    });

Однако клиент работает в формате json, а не в двоичном формате. Это дает полученные данные в формате JSON, но я могу преобразовать их в объект. Проблема в том, что когда я генерирую объект, он конвертирует его в json, поэтому сервер не вызывает для него прослушиватель событий.

socket.on("event", new Emitter.Listener() {
            @Override
            public void call(Object... args)
            {
                // args[0] is a JSONObject not binary!
                clientSocket.emit("event", new ResponseData("var")); // gets converted into JSONObject

            }
        });

Как я могу заставить клиентскую библиотеку работать в двоичном формате, а не в json? Я вижу это имеет decoder, encoder options inКласс IO.Options`, который может помочь.

0 ответов

Другие вопросы по тегам