Как можно в веб-приложение встроить 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
Начиная с Servlet API 3.0, вам достаточно пометить ваш класс аннотацией @WebListener
@WebListener
public class SocketServerListener implements ServletContextListener {
//...
}
Комментариев нет:
Отправить комментарий