звучит так, будто вы создаете регистратор ключей.Я думаю, это причина, почему 2 человека уже проголосовали за вас.Забавно, что в данный момент я пишу дипломную работу магистра по таким вещам: P https://github.com/kamiljano/CloudDoorThesis Мой POC не регистрирует ключи, а просто позволяет удаленно скачивать файлы с удаленного устройства.
В любом случае, судя по вашим данным, вы общаетесь с сервером через TCP-сокет.Не надо!Брандмауэр никогда не пропустит вас.Придерживайтесь чего-то более общего, например, HTTP.Тогда вы можете иметь конечную точку, такую как http://server.com/keys, и отправлять ей JSON-запросы, например,
{
"strokes": [
"a", "b", "c", "backspace"
]
}
Не загружайте свои материалы каждый раз, когда пользователь нажимает кнопку ->, которая генерирует многостресс в сети.Таким образом, вы будете генерировать HTTP-запрос PUT каждые 20 нажатий клавиш или каждую 1 минуту.Убедитесь, что запрос выполняется регистратором ключей в отдельном потоке, или пользователь заметит, что для появления символа на экране требуется 0,5-2 секунды.Не храните ключи в памяти приложения -> вам не хватит памяти, как только 10 пользователей напишут новый пост в Facebook.Вместо этого сохраняйте каждое изменение в базе данных.В этот момент вы сначала пишете небольшой фрагмент кода, такой как
String result = "";
for (String key : strokes) {
if ("backspace".equals(key) && result.size() > 0) {
result = result.substring(0, result.size() - 2);
} else if ("del".equals(key) && result.size() > 0) {
result = result.subscring(1, result.size() - 1);
} else {
result += key;
}
}
updateDatabaseEntry(userId, result);