Страницы

Поиск по вопросам

понедельник, 15 июля 2019 г.

ServerSocket в веб-приложении

Как можно в веб-приложение встроить ServerSocket на определенному порту? Когда, как и где нужно его запускать?


Ответ

Вы можете создать самый обычный socket-сервер:
ServerSocket ss = new ServerSocket(port);
Если вам просто нужна точка входа в веб-приложении, стартующая при старте приложения, то напишите класс, реализующий интерфейс javax.servlet.ServletContextListener и в методе contextInitialized() вызывайте инициализацию вашего socket-сервера.
Действия, которые должны быть произведены при остановке web-приложения, выполняются в методе contextDestroyed()
public class SocketServerListener implements ServletContextListener { private static final int PORT = 3333; private ServerSocket server;
@Override public void contextInitialized(ServletContextEvent servletContextEvent) { server = new ServerSocket(PORT); // ... }
@Override public void contextDestroyed(ServletContextEvent servletContextEvent) { server.close(); } }
Если вы используете Servlet API старше, чем 3.0 - добавьте listener в web.xml
my.package.SocketServerListener
Начиная с Servlet API 3.0, вам достаточно пометить ваш класс аннотацией @WebListener
@WebListener public class SocketServerListener implements ServletContextListener { //... }

Комментариев нет:

Отправить комментарий