Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Websocket应用程序中初始化时间密集型子系统_Java_Netbeans_Websocket - Fatal编程技术网

Java 在Websocket应用程序中初始化时间密集型子系统

Java 在Websocket应用程序中初始化时间密集型子系统,java,netbeans,websocket,Java,Netbeans,Websocket,我正在创建一个websocket应用程序,我想在程序初始化时执行一次性的时间密集型任务。创建此应用程序时,建议的做法()是覆盖以下函数: @ServerEndpoint(value = "/testendpoint", encoders = {TestEncoder.class}, decoders = {TestDecoder.class}) public class WSEndpoint { @OnMessage public void onMessage(Sessi

我正在创建一个websocket应用程序,我想在程序初始化时执行一次性的时间密集型任务。创建此应用程序时,建议的做法()是覆盖以下函数:

@ServerEndpoint(value = "/testendpoint", encoders = {TestEncoder.class}, decoders = {TestDecoder.class})
public class WSEndpoint 
{   
    @OnMessage
    public void onMessage(Session wsSession, CommandIn command) throws IOException, EncodeException 
    {
        ...
    } 

    @OnOpen
    public void onOpen(Session wsSession) 
    {
        ...
    }    

    @OnClose
    public void onClose(Session wsSession) 
    {
        ...
    }

    @OnError
    public void onError(Throwable t) 
    {
    }    
}
因此,当创建一个新连接/会话时,将调用“onOpen”,当收到一条新消息时,将调用“onMessage”

我想做的是,在让用户创建会话和发送命令(通过浏览器前端)之前,初始化子系统,初始化大约需要20秒。如果它只是在“第一次请求使用”时初始化,就像我现在所做的那样,那么用户体验就会中断。显然,这里没有可见的“main”函数(可能是由websocket框架在更深层次上调用的)

你们建议我做什么来实现我想做的?目前,我在一个内部类的静态块中有初始化代码——只执行一次——但在第一次“调用/使用”该类时执行,从而中断了用户体验

有什么建议吗


谢谢。

web应用程序中初始化代码的最佳位置是a的方法内部

这样,您可以在应用程序启动时进行初始化