Чтобы реализовать сервер сокета Java уровня производства, каковы потенциальные ошибки, о которых я должен знать?Java Socket Server Essentials
На данный момент у меня есть базовая структура кода, используя классы ServerSocket
и Socket
ядра ядра java.net
. Сервер ждет клиента и создает для него новый поток.
Мне было интересно, есть ли это путь, или есть другие проблемы, которые я должен рассмотреть, прежде чем запускать код в дикой природе.
Несколько вещей, которые я думал, не с моим ограниченным знанием и опытом является:
- Клиент обнаружения обрыва и освобождения ресурсов клиента.
- Пул соединений, это необходимо или я должен придерживаться существующей конструкции.
- Мониторинг серверов, регистрация и восстановление ошибок и т. Д.
- Идите с готовыми каркасами, такими как Apache Mina .. ??
Что делает ваш опыт должен сказать? ...
JMX и JConsole - это новые концепции для меня, может быть, мне придется вдаваться в подробности относительно тех, с чего начать, с чего начать? ExecutorService слышал об этом, но никогда не использовал его раньше, каковы были бы преимущества его использования? Выключение сервера и повторное подключение клиента? Я никогда не думал об этом, что мне делать в этом случае? Да, я буду транспортировать строки и обслуживать Flash-клиентов, поэтому я понятия не имею о кодировании. –
Ah :-) Так много думать! JMX/Jconsole будет подвергать вашу внутреннюю программу (например, пулы потоков) для мониторинга. ExecutorService позволит пул потоков, поэтому вы можете отменить работу из сокетов в этот пул и ограничить количество параллельных потоков. Подумайте о том, чтобы ваши клиенты снова подключались после определения разъединения. А для кодировок см. Приведенную выше ссылку. –
Подводя итоги, какие готовые рамки вы предложите, чтобы освещать большинство обсуждаемых тем выше? –