1

我正在使用 android autobahn websocket 在 android 和 python tornado socket server 之间建立连接。

下面是在 android 中使用的高速公路 websocket 代码。

公共无效开始(){

    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;
    }
}

所有消息都在 public void onTextMessage(Object payload) 方法中接收。

问题是,当我从 python 套接字服务器发送小于 128 kb 的图像时,我能够接收它。但是当我发送大小超过 128 kb 的图像时,它会显示下面提到的错误。

WebSocketException(de.tavendo.autobahn.WebSocketException:帧有效负载太大)

那么我怎样才能增加帧有效载荷大小。

4

1 回答 1

0

您需要像这样使用 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);
于 2016-03-06T13:23:35.610 回答