Java 如何设置高速公路Websocket的最大消息长度?
我在android(Java)上使用“”作为客户端,在linux上使用“”作为服务器(python)。当我从客户端发送大消息时,我们断开了连接。这是因为超过了最大消息长度。对于不同的设备,此限制也不同。“Minix Neo X8”为2Mb,“HTC One”为8Mb。有什么问题?如何通过强制设置消息的最大长度Java 如何设置高速公路Websocket的最大消息长度?,java,android,python,websocket,autobahn,Java,Android,Python,Websocket,Autobahn,我在android(Java)上使用“”作为客户端,在linux上使用“”作为服务器(python)。当我从客户端发送大消息时,我们断开了连接。这是因为超过了最大消息长度。对于不同的设备,此限制也不同。“Minix Neo X8”为2Mb,“HTC One”为8Mb。有什么问题?如何通过强制设置消息的最大长度 import de.tavendo.autobahn.WebSocketConnection; import de.tavendo.autobahn.WebSocketException;
import de.tavendo.autobahn.WebSocketConnection;
import de.tavendo.autobahn.WebSocketException;
import de.tavendo.autobahn.WebSocketHandler;
import de.tavendo.autobahn.WebSocketOptions;
WebSocketManager mWebSocketManager = new WebSocketManager();
MessageHandler messageHandler = new MessageHandler();
private final WebSocketConnection mConnection = new WebSocketConnection();
private void createSocket() {
try {
mConnection.connect("ws://192.168.45.86:1488/echo", mWebSocketManager);
} catch (WebSocketException e) {
Log.d(TAG, e.toString());
}
}
private class WebSocketManager extends WebSocketHandler {
@Override
public void onTextMessage(String data) {
try {
messageHandler.parseMessage(data);
} catch (ParseException e) {
e.printStackTrace();
}
}
@Override
public void onOpen() {
Log.d("RECD", "Connection established");
messageHandler.sendMessage("Request", "Login", 16, null);
}
@Override
public void onClose(int code, String reason) {
}
}
我尝试使用setMaxMessagePayloadSize设置消息的最大长度(以八位字节为单位):
但这并不影响消息的长度。如果不使用setMaxMessagePayloadSize,则当消息超过65536字节时,我会得到一个异常:
W/System.err﹕ de.tavendo.autobahn.WebSocketException:消息负载
超出有效载荷限制
文档声明消息的默认长度为4MB
private void createSocket() {
try {
WebSocketOptions options = new WebSocketOptions();
options.setMaxMessagePayloadSize(33554432);
mConnection.connect("ws://192.168.45.86:1488/echo", mWebSocketManager , options);
} catch (WebSocketException e) {
Log.d("Error", e.toString());
}
}