Spring boot Spring boot swagger SocketIO create 1';全球';联系?或连接&;在每次API调用时断开连接?

Spring boot Spring boot swagger SocketIO create 1';全球';联系?或连接&;在每次API调用时断开连接?,spring-boot,socket.io,jhipster,Spring Boot,Socket.io,Jhipster,我在RpiAlertResource.java中有这段代码 import io.socket.client.IO; import io.socket.client.Socket; import io.socket.emitter.Emitter; ... @PostMapping("/nms-rpi-alertsMany") public String createNmsRpiAlertMany(@RequestBody NmsRpiAlert rpiAlert) throws URI

我在RpiAlertResource.java中有这段代码

import io.socket.client.IO;
import io.socket.client.Socket;
import io.socket.emitter.Emitter;
...

@PostMapping("/nms-rpi-alertsMany")
    public String createNmsRpiAlertMany(@RequestBody NmsRpiAlert rpiAlert) throws URISyntaxException {

....

Socket socket;
try {
    socket = IO.socket("https://xxx.xxx.xx");
    socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
        @Override
        public void call(Object... args) {

            socket.emit("InsertAlert", alert.getId(), alert.getSentToZones() );

            socket.disconnect();
        }

    }).on(Socket.EVENT_DISCONNECT, new Emitter.Listener() {
        @Override
        public void call(Object... args) {
        }
    });

    socket.connect();

} catch (URISyntaxException e) {
    e.printStackTrace();
}
因此,每次调用api时,它都会打开和关闭套接字连接。 工作正常。但是像这样的api调用很多。我想知道是否有更好的方法来实现这个连接

就像“全局”套接字连接一样,在失去连接时可以重新连接


在Springboot应用程序中,我在何处设置此连接?

您可以在
@Service
注释类中设置此连接,但在1到无限个连接之间,您可以使用连接池。无论你决定什么,都要考虑运行压力测试和损坏CPU /内存消耗和错误率。谢谢@ Ga LMARZIOU。您有什么建议(链接)可以让我了解更多关于在/@service注释类中实现连接池的信息吗?没有。但为了澄清,我建议使用现有的连接池,如apache commons-pool2,但是请记住,我没有使用WebSocket的经验。无论如何,我能给你的最重要的建议是在考虑优化之前对你的应用程序进行压力测试(使用jmeter或gatling)。你可以在
@Service
注释类中进行测试,但在1到无限个连接之间,你可以使用连接池。无论你决定什么,都要考虑运行压力测试和损坏CPU /内存消耗和错误率。谢谢@ Ga LMARZIOU。您有什么建议(链接)可以让我了解更多关于在/@service注释类中实现连接池的信息吗?没有。但为了澄清,我建议使用现有的连接池,如apache commons-pool2,但是请记住,我没有使用WebSocket的经验。无论如何,我能给你的最重要的建议是,在考虑可能为时过早的优化之前,对你的应用程序进行压力测试(使用jmeter或gatling)。