Spring boot swagger SocketIO создает 1 «глобальное» соединение? Или подключаться и отключаться при каждом вызове API? - PullRequest
1 голос
/ 22 февраля 2020

У меня есть этот код в 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 мне установить это соединение?

...