Я разработал программу, которая состоит из двух частей: one is client: просто отправляет сообщение слишком сервер Другая часть сервера: просто получает сообщения и сохраняет массаж в map. (key is channelID, значение List, все сообщения, отправляемые по каналу, будут сохранены в списке) Я использую следующие коды: for (int i = 0; i < 20; i++) { client.sendMessage(new Message(i)); }
Если я запускаю клиента в первый раз, есть всего 2 сообщения на карте сервера, потерял 18 сообщений. Если я запустил клиент снова, все сообщения на карте, никто не потерял. Если я пришлю такие сообщения: for (int i = 0; i < 20; i++) { Thread.sleep(50); client.sendMessage(new Message(i)); }
сообщений не было. Любой звонит, скажите мне, в чем проблема? Thanksсервер не может получать все сообщения в первый раз
-1
A
ответ
1
Письменные сообщения асинхронны в netty, поэтому ваш цикл может завершиться до того, как сообщение будет действительно отправлено на remotepeer. Убедитесь, что su либо ожидает, что все записи будут завершены вызовом, например Channel.write (..). Await ..();