Я попытался отправить строку на другое устройство с потоком. Когда я посылаю строку с символами 60k, она работает нормально и всегда успешно получает поток. Но когда я пытаюсь отправить 70 тыс. Символов или больше, всегда происходит сбой, и устройство отключается.
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 );
}