2017-11-21 33 views
-1

데이터베이스에서 일부 엔티티가 일부 백엔드 프로세스에 의해 업데이트 중입니다. 우리는이 업데이트 된 값을 실시간이 아닌 웹 사이트에서 최대한 빨리 사용자에게 보여주고 자합니다.업데이트 된 데이터를 최대한 빨리 (실시간이 아닌) 사용자에게 표시하는 방법은 무엇입니까?

우리는 이러한 접근 방식에 직면 해있는 문제.

  • 폴링 : - 우리가 알고있는 것처럼 SSE, WebSocket과 같은 폴링 기술이 더 있습니다.
  • SSE : - SSE에서 오랜 시간 동안 연결이 열려 있습니다 (인터넷에서 검색하여 긴 폴링을 사용함). 사용자가 증가하면 문제가 될 수 있습니다.
  • WebSockets : - 단방향 통신 (서버에서 클라이언트로)이 필요하므로 SSE가 더 좋습니다.

우리의 솔루션은

  • 우리는 사용자의 모든 요청에 ​​대한 데이터베이스를 확인하고 값을 업데이트합니다.

이 그 것이다 (이것은 사용자가 다음 요청에 따라 달라집니다 그것은 아주 좋지 않다) 좋은 접근 방식 또는 이것을 수행하는 더 좋은 방법이 있거나 SSE에 대해 뭔가를 놓친 것입니다 (오해 된 것).

(이것은 어떤 긴 연결 문제가 아닌지?)?가 잘이 모든 대신 SignalR을 사용하는 것입니다

감사합니다.

+0

입니다.js를 사용하고 웹 요청을 백엔드의 API로 계속 보냅니다. API에 의해 수정 된 데이터가 녹아웃되면 자동으로 UI가 업데이트됩니다. 나는이 접근법이 복잡한 방법으로가는 것보다 낫다고 생각합니다. –

답변

1

귀하가 사용해야하는 것은 귀하의 요구 사항에 달려 있습니다.

옵션 :

  1. 당신 클라이언트는 경우가 요청을 만 업데이트 정보가 필요 -> 당신의 방법 이동
  2. 당신 같은 다른 클라이언트 유형과 솔루션을 필요로하는 경우 (Webclient, Winformclient, Androidclient, ....) 그리고 여러분은 지원해야하는 브라우저 유형이 다릅니다. 모든 브라우저가 모든 메커니즘을 지원하지는 않습니다 ... SignalR은 클라이언트가 지원하는 메커니즘에 따라 자동으로 올바른 전송 메커니즘을 선택하도록 설계되었습니다. -> SignalR 옵션입니다. (자세한 내용은 여기 : https://www.asp.net/signalr) 연결 상태를 유지하는 옵션도 있습니다.
  3. https://pusher.com/과 같은 대안도 있습니다. (간단히 말해서 메시지를 보내고 메시지를 구독 할 수있는 대기열 일뿐입니다.) 그러나 이러한 서비스는 일부 데이터 볼륨까지 무료입니다.
-1

이벤트 기반 통신을 사용할 수 있습니다. 백엔드/데이터베이스에 변경 (이벤트)이있을 때마다 서버는 클라이언트에게 메시지를 보내야합니다.
앱에 업데이트가있을 때마다 해당 이벤트에 등록하고 UI를 새로 고침해야합니다.
우리는 우리의 응용 프로그램에서이 유즈 케이스를 위해 소켓 IO를 사용했으며 잘 작동했습니다.
여기 당신이 데이터를 녹아웃 같은 UI를 처리하기위한 몇 가지 클라이언트 측 라이브러리를 사용하려고한다고 생각 웹 사이트 https://socket.io/