Пытаюсь сделать минимальный рабочий пример с веб-сокетами. На стороне сервера использую Spring Framework
, клиент - JavaScript
.
К простому Spring Boot
проекту добавил класс с конфигурацией:
@Configuration
public class WebSocketConfig implements WebSocketConfigurer {
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(notificationWebSocketHandler(), "/notification").setAllowedOrigins("*").withSockJS();
}
@Bean
public NotificationWebSocketHandler notificationWebSocketHandler() {
return new NotificationWebSocketHandler();
}
}
public class NotificationWebSocketHandler extends TextWebSocketHandler {
@Override
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
System.out.println("Connection established");
for (int i = 0 ; i < 5; i++) {
TextMessage message = new TextMessage("Notification " + i);
session.sendMessage(message);
try {
Thread.sleep(3000);
}
catch (Exception ex) {
System.out.println("An error occurred");
session.close(CloseStatus.SERVER_ERROR);
}
}
session.close(CloseStatus.NORMAL);
}
@Override
public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
System.out.println("Connection closed with the status: " + status);
}
}
Клиент index.html
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="https://cdn.jsdelivr.net/npm/sockjs-client@1/dist/sockjs.min.js"></script>
<!-- <script src="stomp.min.js"></script> -->
<script>
var url = 'http://localhost:8080/notification';
var socket = new SockJS(url);
socket.onopen = function() {
console.log('Opening...');
};
socket.onclose = function() {
console.log('Closing...');
};
socket.onmessage = function (event) {
console.log('Received notification: ', event.data);
}
</script>
</head>
<body></body>
При открытии файла index.html
в консоли браузера выходят ошибки:
GET http://localhost:8080/notification/info?t=1554898230939 404
Access to XMLHttpRequest at 'http://localhost:8080/notification/info?t=1554898230939' from origin 'http://localhost:8081' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Как сделать, чтобы <input type="datetime-local" > имел максимальное значение даты и времени, сегодняЧерез JS
Не могу разобраться как настроить debugger в vs code, а именно, куда передавать эти глобальные переменные, вот пример того как они выглядят в вебшторме
Хочу сделать анимацию спидометра с помощью canvasНо мне необходимо, чтобы стрелка спидометра была треугольной формы и при изменении значения,...