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