• 카테고리

    질문 & 답변
  • 세부 분야

    웹 개발

  • 해결 여부

    미해결

ASP.NET Core SignalR을 사용하는 방식의 장점이 있나요?

24.01.25 15:52 작성 조회수 173

1

  • blazor server 방식은 기존의 asp.net 웹서버프로그래밍과 동일한 방식인 것으로 보입니다.
  • 기존의 웹서버프로그래밍을 공부할때는 http 프로토콜을 이용해서 request, response를 하므로, stateless, 헤더 정보, get, post 등에 대해서 학습을 했었던 것으로 기억합니다.
    그때의 방식과 내부적으로 SignalR을 사용하는 소켓방식과의 차이점을 알고 싶습니다.
  • 클라이언트의 요청이 서버에 request로 전달이 되고, 서버가 실행되어서 렌더링한 결과를, 클라이언트에게 response 해주는 것이 아닌가요? 아...근데 새로 페이지를 전부 그리는 것이 아니고, 해당 변경부분만 렌더링해서 response를 해주는 것으로 아는데...
    소켓과 http 프로토콜과의 역할을 구분하여 알고 싶습니다.

답변 2

·

답변을 작성해보세요.

0

안녕하세요 stone님!

거의 다와가네요...하핫 아래 답변 드립니다!

 

HTTP 프로토콜은 클라이언트가 서버에 요청하고, 서버가 응답하는 단방향 통신을 기반으로 합니다. 그리고 HTTP 기반의 프로토콜은 stateless하다는 특성이 있습니다. 각각의 요청은 서버에 독립적으로 처리되며 서버는 상태를 유지하지 않습니다. 이로 인해 각 요청마다 모든 정보를 새로 전달해야 했습니다ㅠㅠㅠ

 

그런데 Blazor Server는 SignalR을 통해 소켓을 사용하여 실시간 양방향 통신을 지원합니다. 서버와 클라이언트 간에 지속적으로 연결을 유지하며, 서버에서 상태를 유지합니다. 이를 통해 브라우저와 서버 간에 실시간으로 데이터를 전달하고 상태를 공유할 수 있습니다.

 

서버에서 클라이언트로도 데이터를 전송할 수 있게 하고, 클라이언트에서 서버로 요청을 보낼 수 있습니다. 그러다보니 Blazor Server는 실시간으로 데이터 업데이트를 처리할 수 있어서, 여러 사용자가 동시에 작업하는 협업 애플리케이션 등에 유용합니다!

 

말씀하신대로 변경점만 부분적으로 페이지 업데이트를 합니다! 아래 댓글 답변도 같이 미리 드리자면, 클라이언트에서 발생하는 이벤트가 있을 때, Blazor Server는 SignalR을 사용하여 서버에 해당 이벤트를 보내고, 서버는 이를 처리하고 적절한 응답을 클라이언트로 다시 보내게 됩니다. 이러한 구조로 인해 전체 페이지를 새로 고치지 않고도 부분적인 업데이트가 가능합니다!

 

답변 드리는게 너무 늦어서 죄송하다는 말씀도 드립니다ㅠ_ㅠ

남은 강의 잘 들으시고, 다른 질문 있으시면 언제든 문의 주세요 :)

 

감사합니다~!

stone님의 프로필

stone

질문자

2024.02.05

답변 주셔서 감사합니다.

"Blazor Server는 실시간으로 데이터 업데이트를 처리할 수 있어서, 여러 사용자가 동시에 작업하는 협업 애플리케이션 등에 유용합니다!"

=> 이 부분이 이해가 잘 안가는데요... A사용자와 B사용자가 각각 같은 페이지를 브라우저에 띄워 놓은 상태에서 A사용자가 데이터를 변경해서 서버에 전달이 되면...A사용자 뿐만 아니라 B사용자의 화면에서도 변경된 데이터가 보인다는 말씀인가요???

0

stone님의 프로필

stone

질문자

2024.01.25

혹시, 클라이언트에서 발생되는 이벤트(onClick, onChange) 같은 경우에만 SignalR을 통해서 소켓연결로 응답을 받아오는 구조인가요?