websocket 기원 설명
안먹음..
이것도 안됨..
https://hwiveloper.dev/2019/01/10/spring-boot-stomp-websocket/
maven으로 진행된 프로젝트도 gradle 의존성을 찾아서 주입함으로서 진행할 수 있다.
https://daddyprogrammer.org/post/4077/spring-websocket-chatting/
Websocket의 경우 별개의 프로토콜이므로 http가 아닌 ws로 시작하는 주소 체계를 갖는다.
클라이언트들은 서버에 접속하면 개별의 Websocket session을 가지게 된다.
채팅방에 입장시 클라이언트들의 websocket session정보를 채팅방에
맵핑시켜서 보관하고 있으면 서버에 전달된 메세지를 특정 방의 websocket session으로
보낼 수 있으므로 개별의 채팅창을 구현할 수 있다.
return "redirect:http://www.naver.com";
https://www.youtube.com/watch?v=_696SMBLqRA&t=79s&ab_channel=CodeForgeYT
plugins {
id 'org.springframework.boot' version '2.3.4.RELEASE'
id 'io.spring.dependency-management' version '1.0.10.RELEASE'
id 'java'
}
group = 'com.practice'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-websocket'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
annotationProcessor 'org.projectlombok:lombok'
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
}
test {
useJUnitPlatform()
}
먼저 websocket을 implemenation 해준다
WebSocket을 사용하기 위해 annotation으로 @Configuration, @EnableWebSocket을 붙여준다.
WebSocketConfigurer를 상속받는다.
한 스레드는 그 내부의 연산만 가능하며 다른 스레드의 UI를 건드릴 수 없습니다.
그런데 만약 스레드들이 서로 영향을 줄 수 없다면 스레드의 존재 이유가 없을 것입니다.
이를 해결하기 위해서 서로 다른 스레드 간의 참조를 위해서 스레드 간에 통신할
수 있는 장치를 만들었는데 그것이 핸들러[Handler]입니다.
핸들러는 스레드 간에 메시지 객체나 러너블 객체를 통해 통신할 수 있는 장치이며,하나
의 핸들러는 하나의 스레드와 관련을 맺습니다. 핸들러는 자신이 생성된 스레드에 짝이
되며 다른 스레드와 통신을 수행하게 됩니다.