Skip to content

Commit 0a3a174

Browse files
committed
feat: 스프링 이벤트 / 웹소켓 연결 완료
1 parent 0f07b9a commit 0a3a174

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

src/main/java/cmf/commitField/CommitFieldApplication.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77

88
@SpringBootApplication
99
@EnableJpaAuditing
10-
// 스케쥴링 활성화
11-
// 테스트시에만 주석 풀기
1210
@EnableScheduling
1311
public class CommitFieldApplication {
1412
public static void main(String[] args) {

src/main/java/cmf/commitField/domain/commit/scheduler/CommitUpdateListener.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import cmf.commitField.domain.user.service.UserService;
55
import lombok.RequiredArgsConstructor;
66
import org.springframework.context.event.EventListener;
7+
import org.springframework.messaging.simp.SimpMessagingTemplate;
78
import org.springframework.stereotype.Component;
89

910
@Component
@@ -12,6 +13,7 @@ public class CommitUpdateListener {
1213
private final UserService userService;
1314
private final PetService petService;
1415
private final CommitUpdateService commitUpdateService;
16+
private final SimpMessagingTemplate messagingTemplate;
1517

1618
@EventListener
1719
public void handleCommitUserUpdateEvent(CommitUpdateEvent event) {
@@ -41,4 +43,14 @@ public void handleCommitPetUpdateEvent(CommitUpdateEvent event) {
4143
// 커밋 갱신 후에 다른 서비스에서 필요한 작업 수행 (예: DB 업데이트, 상태 갱신 등)
4244
System.out.println("유저명: " + username + "'s pet has updated " + commitCount + " commits.");
4345
}
46+
47+
@EventListener
48+
public void onCommitCountUpdate(CommitUpdateEvent event) {
49+
// 커밋 수 업데이트가 있을 때 메시지 발송
50+
String username = event.getUsername();
51+
long newCommitCount = event.getNewCommitCount();
52+
53+
// 메시지를 WebSocket을 통해 전송
54+
messagingTemplate.convertAndSend("/topic/commit/" + username, newCommitCount);
55+
}
4456
}

src/main/java/cmf/commitField/domain/commit/scheduler/CommitUpdateService.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package cmf.commitField.domain.commit.scheduler;
22

33
import cmf.commitField.domain.commit.totalCommit.service.TotalCommitService;
4-
import cmf.commitField.domain.pet.service.PetService;
54
import cmf.commitField.domain.user.dto.UserInfoDto;
65
import cmf.commitField.domain.user.entity.User;
76
import cmf.commitField.domain.user.repository.UserRepository;
87
import lombok.RequiredArgsConstructor;
8+
import org.springframework.messaging.simp.SimpMessagingTemplate;
99
import org.springframework.stereotype.Service;
1010

1111
import java.time.LocalDateTime;
@@ -15,8 +15,9 @@
1515
public class CommitUpdateService {
1616
private final TotalCommitService totalCommitService;
1717
private final UserRepository userRepository;
18-
private final PetService petService;
18+
private final SimpMessagingTemplate messagingTemplate;
1919

20+
// 유저 랭킹 상승 로짓
2021
public UserInfoDto updateUserTier(String username){
2122
User user = userRepository.findByUsername(username).get();
2223
long seasonCommitCount;
@@ -35,4 +36,5 @@ public UserInfoDto updateUserTier(String username){
3536
.tier(user.getTier().name())
3637
.build();
3738
}
39+
3840
}

0 commit comments

Comments
 (0)