Replies: 2 comments 5 replies
-
|
SSE의 경우 연결이 일정 시간 동안 비정상적으로 끊겼다는 것을 인지할 수 있다면 어느정도 제시한 문제점을 해결할 수 있을 것 같습니다. 비정상적인 연결 종료를 감지한 뒤에 수업 상태를 Pending 상태로 바꾼다거나 아님 아예 수업을 종료 시키는 것도 괜찮을 것 같아요. 교수가 수업중인 화면을 강제 종료시킨 후 다시 홈 화면에 들어와 로그인을 하면 수업 중인 수업을 찾아서 리다이렉트해주는 것으로 논의했었잖아요. 비정상적인 연결 종료를 감지한 뒤에 수업을 종료하게 되면 수업 중인 수업에 재접속할 수 없지 않을까 했는데, 비정상적인 연결 종료를 감지하는 시간을 조금 길게 준다면 어떨까요? 말을 좀 장황하게 했지만, 실제로 구현을 해보면서 해결 방안을 찾아가는 게 더 좋을 것 같아요. "이렇게 하면 해결되지 않을까" 싶은 내용만 서로 공유해보고 각자 구현해보면서 테스트해보는 건 어떨까요? |
Beta Was this translation helpful? Give feedback.
-
|
SSE 관련해서 알아봤는데 서버 측에서 클라이언트에게 메시지를 보냈을 때 해당 클라이언트가 수신하지 못하는 상태라면 Exception이 발생한다고 합니다. 그래서 이를 이용해 주기적으로 ping-pong 메시지를 보내서 Exception이 발생한다면(즉, 클라이언트가 수신하지 못하는 상태라면) 해당 emitter(emitter는 개별적인 클라이언트와 SSE connection을 맺어주는 객체라고 생각하면 됩니다. 하나의 클라이언트에 대해 하나의 emitter 객체로 데이터를 전송하는 방식입니다.)를 리스트에서 제거하는 방법이 어떨까 싶어요. 물론 주기적으로 모든 emitter에 대해 ping-pong을 해야 한다는 단점이 있지만, 백엔드 측에서는 이 방식이 가장 적절할 것 같습니다. 구현 방법도 매우 간단해서, 이 방식으로 테스트해보고 검토해도 좋을 것 같습니다. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
수업 도중 브라우저를 강제로 종료하면 서버 측에서 클라이언트가 수업을 닫았는지 알 수 있는 방법이 있을까요? 만약 따로 처리를 해 주지 않으면 수업이 계속 열려 있어 Connection이 불필요하게 유지된다는 문제점이 존재할 것 같아, 이에 대한 방안이 필요해 보입니다.
@uri010
Beta Was this translation helpful? Give feedback.
All reactions