我尝试将字符串与流发送到另一个设备。当我发送一个包含60k个字符的字符串时,它可以正常工作,并且总是成功接收到该流。但是当我尝试发送70k或更大的字符时,它总是失败,并且设备断开了连接。
SimpleArrayMap<Long, Payload> incomingPayloads = new SimpleArrayMap<>();
@Override
public void onPayloadReceived(String endpointId, Payload payload) {
switch (payload.getType()) {
case Payload.Type.STREAM:
// Add it to the tracking list so we can update it.
incomingPayloads.put(payload.getId(), payload);
break;
}
}
@Override
public void onPayloadTransferUpdate(String endpointId, PayloadTransferUpdate update) {
switch (update.getStatus()) {
case PayloadTransferUpdate.Status.IN_PROGRESS:
long size = update.getTotalBytes();
if (size == -1) {
// This is a stream payload, so we don't need to update anything at this point.
return;
}
break;
case PayloadTransferUpdate.Status.SUCCESS:
// SUCCESS always means that we transferred 100%.
Toast.makeText(this, "Transfer success", Toast.LENGTH_SHORT).show();
break;
case PayloadTransferUpdate.Status.FAILURE:
case PayloadTransferUpdate.Status.CANCELED:
Toast.makeText(this, "Transfer failed", Toast.LENGTH_SHORT).show();
break;
default:
// Unknown status.
break;
}
这是我发送有效载荷的方式:
InputStream stream = new ByteArrayInputStream(text.getBytes());
Payload payload = Payload.fromStream(stream);
for (String endPointId : connectedIdList) {
connectionsClient
.sendPayload( endPointId, payload );
}