dir.by  
  Поиск  
Компьютер, программы
Java
Spring в Java (Spring Framework, Spring Data, Spring Boot, ...)
 Создаем новое Spring WebSocket приложение (Java WebSocket шлет сообщение к JavaScript WebSocket) | Java, Spring WebSocket, Spring Boot, Maven 
посмотрели 2966 раз
обновлено: 20 апреля 2025
Скачать пример:
MySpringWebSocket.zip ...
размер: 22 kb
 
На заметку! У вас должна быть установлена Java JDK. Если у вас ее нет то нужно скачать и установить Java JDK ...

На заметку! У вас должна быть установлена IntelliJ IDEA Ultimate. Если у вас ее нет то нужно скачать и установить IntelliJ IDEA Ultimate ...

На заметку! У вас должна быть установлен Tomcat Web Server. Если у вас это нет то нужно скачать и установить Tomcat Web Server ...
Шаг 1. Cоздаем новый проект с типом Spring Boot
 
Выбираем Spring Boots:
 
Так как у нас простой проект, то галочки не ставим:
 
Проект создался:
Шаг 2. Добавим библиотеки spring-boot-starter-web и spring-websocket в pom.xml файл

spring-boot-starter-web необходима для запуска нашего приложения в качестве веб-сервера.
spring-websocket библиотека с функциями веб-сокета.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-parent</artifactId>
          <version>3.4.4</version>
          <relativePath/> <!-- lookup parent from repository -->
     </parent>
     <groupId>org.example</groupId>
     <artifactId>MySpringWebSocket</artifactId>
     <version>0.0.1-SNAPSHOT</version>
     <name>MySpringWebSocket</name>
     <description>MySpringWebSocket</description>
     <url/>
     <licenses>
          <license/>
     </licenses>
     <developers>
          <developer/>
     </developers>
     <scm>
          <connection/>
          <developerConnection/>
          <tag/>
          <url/>
     </scm>
     <properties>
          <java.version>17</java.version>
     </properties>
     <dependencies>
          <dependency>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-starter</artifactId>
          </dependency>

          <!-- web starter -->
          <dependency>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-starter-web</artifactId>
          </dependency>


          <!-- web socket -->
          <dependency>
               <groupId>org.springframework</groupId>
               <artifactId>spring-websocket</artifactId>
          </dependency>


          <dependency>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-starter-test</artifactId>
               <scope>test</scope>
          </dependency>
     </dependencies>

     <build>
          <plugins>
               <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
               </plugin>
          </plugins>
     </build>

</project>
Внимание!
Если не установлен plugin Spring-Websocket, то нужно установить Spring-Websocket plugin в Intellij Idea ...



Шаг 3. Создаем новый MyWebSocketHandler.java файл
Нажимаем правой клавишей мыши на папку моего пакета и создаем новый java файл
 
Напишем название MyWebSocketHandler
И выберем тип Class
Нажмем кнопку ввод
Файл создался.
 
Внутри файла MyWebSocketHandler.java добавим код:
  Java  
package org.example.myspringwebsocket;

import java.io.IOException;
import org.springframework.stereotype.Component;
import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.handler.TextWebSocketHandler;

@Component
public class MyWebSocketHandler extends TextWebSocketHandler {

     @Override
     public void handleTextMessage(WebSocketSession session, TextMessage message)
               throws InterruptedException, IOException {

          String payload = message.getPayload();
          session.sendMessage(new TextMessage("Today weather is good"));
     }
}
Шаг 4. Создаем новый MyWebSocketConfig.java файл
Нажимаем правой клавишей мыши на папку моего пакета и создаем новый java файл
 
Напишем название MyWebSocketConfig
И выберем тип Class
Нажмем кнопку ввод
Файл создался.
 
Внутри файла MyWebSocketConfig.java добавим код:
package org.example.myspringwebsocket;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;

@Configuration
@EnableWebSocket
public class MyWebSocketConfig implements WebSocketConfigurer {

     public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
          registry.addHandler(new MyWebSocketHandler(), "/mysocket1").setAllowedOrigins("*");
     }

}
Шаг 5. Запускаем проект и увидим как работает
 
Видим что наше приложение запускается:
1) Spring Boot инициализируется при запуске нашего приложения (потому что мы создавали наше приложение с типом Spring Boot)
2) дальше запускается Tomcat web сервер с портом 8080 (потому что в файл pom.xml добавили <dependency> ... spring-boot-starter-web ... </dependency>)
 
Наш web сервер работает вот его адрес:
http://localhost:8080

Так как мы запустили программу то web server создал web socket.
Чтобы проверить создадим у себя на диске новый файл D:/1.html
  Html  
<script>
     webSocket = new WebSocket('ws://localhost:8080/mysocket1'); // connect to server

     webSocket.onopen = function(event) {
          alert("Connection open");

          webSocket.send("My name is Evgen"); // send message to server
     };

     webSocket.onmessage = function(event) {
          alert("message from server: " + event.data); // message from server
     };
</script>
Запустим этот файл 1.html и увидим:
 
← Предыдущая тема
Создаем новое Spring Web приложение (запрос идет в Controller → Controller создает ответ как текст или json) | Java, Spring Web, Spring Boot, Maven
 
Следующая тема →
Создаем Azure Web App с типом Java (бесплатно). То есть создаем пустой web server
 
Ваши Отзывы ... комментарии ...
   
Вашe имя
Ваш комментарий (www ссылки может добавлять только залогиненный пользователь)

  Объявления  
  Объявления  
 
Скачать и установить
Установка JDK (скачиваем и устанавливаем библиотеку Java для Windows)
Скачать и установить IntelliJ IDEA для изучения Java, Spring, Jakarta EE | Функциональность и отличия: Community | Ultimate
Изучаем язык Java (class, interface, свойства и т.д.)
Создание простого консольного приложения в IntelliJ IDEA для изучения Java
Что такое interface в Java ?
Прямо в коде (во время выполнения) делаем имплементацию для interface | Java
Потоки в Java
lambda это безымянный метод (нет имени и не принадлежит классу) | Java
Исключения и обработка в Java. Пример: try {...} catch (Exception e) {...}
Зачем использовать throws Exception в названии функциии в Java ? Ответ: метод создает исключение и нет обработки try catch. Пример: float CalculateDensity(float mass, float volume) throws Exception { ... throw new Exception("Error! Volume is zero."); ... }
Java web приложение (сервлет, jsp страница, основная функциональность и без фрэймворков)
Создаем новое простое web приложение (jsp web страница) | Java, Maven
Создаем web сервлет (сервлет находится на веб-сервере, по запросу возвращает результат) | Java
Установка Tomcat web server (скачиваем и устанавливаем для Windows)
Проверяем, тестируем Tomcat web server (создаем новый my.hml файл)
Что такое Maven
Что такое динамическая web страница jsp (Java Server Page) ?
Как инсталировать Smart Tomcat plugin в Intellij Idea
Ошибка "The SDK is not specified for module ... | Project SDK is not defined ..." в IntelliJ IDEA | Java
Spring в Java (Spring Framework, Spring Data, Spring Boot, ...)
Что такое Spring? Зачем в Java использовать Spring?
Что такое Spring Bean? Что такое Spring Container? IoC (inversion of control) | Создание простого Spring проекта и конфигурациия Spring Container в XML файле | Редактор IntelliJ Idea и язык Java
Что такое Dependency Injection в Spring? Создание простого Spring проекта с Dependency Injection в конструкторе с атрибутами @Component, @Autowired | Редактор IntelliJ Idea и язык Java
Создаем новое Spring Web приложение (запрос идет в Controller → Controller создает ответ как текст или json) | Java, Spring Web, Spring Boot, Maven
Создаем новое Spring WebSocket приложение (Java WebSocket шлет сообщение к JavaScript WebSocket) | Java, Spring WebSocket, Spring Boot, Maven
Создаем Azure Web App с типом Java (бесплатно). То есть создаем пустой web server
Java Spring web приложение кладем в Azure
К приложению Azure Web App (Java) соединяемся через FTP | используем File Explorer
Ошибка "The SDK is not specified for module ... | Project SDK is not defined ..." в IntelliJ IDEA | Java, Spring Boot
Как инсталировать Spring WebSocket plugin в Intellij Idea
Jakarta EE / Java EE в Java (web приложения, web сервисы)
Что такое Jakarta EE (Java EE) ? | В каком редакторе (программе) удобно писать Jakarta EE (Java EE) код?
Создание простого web-проекта в IntelliJ Idea Ultimate | Jakarta EE (Java EE)
Struts на Java (расширяет API Java Servlet используя MVC)
Что такое Struts | Java
Курсы, обучение
Курс "Java-разработчик" от Yandex
Собеседование
Собеседования на Java

  Ваши вопросы присылайте по почте: info@dir.by  
Яндекс.Метрика