Как увеличить размер полезной нагрузки кадра в Android AutoBahn Websocket

Я использую android autobahn websocket для установления соединения между android и сервером сокетов торнадо python.

Ниже приведен код автобана, который я использую в Android.

public void start () {

    final String wsuri = ip;

    try {
        mConnection.connect(wsuri, new WebSocketHandler() {

            @Override
            public void onOpen() {
                Log.d(TAG, "Connected to " + wsuri);

            }

            @Override
            public void onTextMessage(String payload) {
                Log.d(TAG, "Got echo: " + payload);

            try{

                InputStream stream = new ByteArrayInputStream(Base64.decode((payload).getBytes(), Base64.DEFAULT));
                Bitmap bitmap = BitmapFactory.decodeStream(stream);

                image.setImageBitmap(bitmap);

            } catch (Exception e) {
                Log.d("got exception:", e.toString());

            }



            }

            @Override
            public void onClose(int code, String reason) {
                Log.d(TAG, "Connection lost.");
                Toast.makeText(Project12.this, "Server is Closed", Toast.LENGTH_SHORT).show();
            }
        });

    } catch (WebSocketException e) {

        Log.d(TAG, e.toString());
        Toast.makeText(Project12.this, "Given IP Adress is not available", Toast.LENGTH_SHORT).show();
        return;
    }
}

Все сообщения получают в открытом доступе void метод onTextMessage(Object payload).

Проблема заключается в том, что при отправке изображений размером менее 128 КБ с сервера сокетов Python я могу получить его. Но при отправке изображений размером более 128 КБ появляется ошибка, о которой упоминается ниже.

WebSocketException (de.tavendo.autobahn.WebSocketException: слишком большая полезная нагрузка кадра)

Так как я могу увеличить размер полезной нагрузки кадра.

1 ответ

Вам нужно использовать WebSocketOptions вот так:

  WebSocketOptions options = new WebSocketOptions();
  options.setMaxMessagePayloadSize(1000000); //max size of message
  options.setMaxFramePayloadSize(1000000); //max size of frame
  mConnection.connect(wsuri, new WebSocketHandler() {},options);
Другие вопросы по тегам