【发布时间】:2016-01-16 16:29:45
【问题描述】:
我正在使用 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:帧负载过大)
那么我怎样才能增加帧有效载荷大小。
【问题讨论】:
-
这是关于大于 128 KB 的图像还是大于 128 KB 的字符串负载?
-
你为什么是base64编码?您将不得不多发送 30% 的字节。
-
服务器一次可以处理超过 128 KB 而客户端不能处理,这对我来说很奇怪。
标签: android python sockets autobahn autobahnws