Java EE6、EJB 3.1 和套接字客户端

Java EE6, EJB 3.1 and Socket Client

我正在开发一个需要通过套接字与任何服务器 (python) 通信的 Web 应用程序。我的 Web 应用程序将作为客户端套接字。

我阅读了一些关于 EJB 和 Socket 的备选方案。 (指示了 JCA,但对于我的简单客户端来说太过分了)

为了简化解决方案,我想创建一个 EJB @Singleton 并创建线程以在其中工作。

你有什么建议吗?

我的简单想法:

单例

@Startup
@Singleton
public class SingletonBean {
    private List<EventMonitor> monitors = new ArrayList<>();

    @PostConstruct
    private void postConstruct() {
        EventMonitor monitor = new EventMonitor("192.168.1.1", 23);
        monitors.add(monitor);
        monitor.start();

        monitor = new EventMonitor("192.168.1.2", 23);
        monitors.add(monitor);
        monitor.start();
    }
}

监控

public class EventMonitor extends Thread {

    private String host;
    private int port;

    public EventMonitor(final String host, final int port) {
        this.host = host;
        this.port = port;

        openConnection();
    }

    @Override
    public void run() {
        // read socket message and persist
        // I think persist here is not a good idea, any better idea?
    }
}

有什么建议吗?

感谢您的宝贵时间。

顺便说一句,答案很简单!

在这种情况下单例就足够了。