2016-11-17 1 views
0

현재 채팅중인 사용자의 수 (기본적으로 얼마나 많은 사람들이 현재 기능을보고 있는지)를 사용자에게 표시하고 싶다고 가정합니다.레일즈에서 웹 페이지에 대해 "지금 시청 중"기능을 구현하는 방법

내가 생각했던 것은 각 actioncable 채널에 대해 redis 카운터를 사용하고 클라이언트가 채널에 연결되거나 연결이 끊어졌을 때이 카운터를 증가 및 감소시키고 거기에 도달했지만이 방법의 문제점은 클라이언트가 웹 페이지를 연 다음 카운터가 증가하고 서버가 잠시 동안 다운되어 클라이언트가 웹 페이지를 닫으면 연결 해제 된 이벤트는 수신되지 않으므로 카운터가 감소하지 않습니다 그 가치는 항상 틀릴 것입니다.

서버가 닫힐 때 이벤트를 잡을 수 있으면이 접근 방식을 향상시킬 수 있다고 생각합니다. 그런 경우 모든 (예 : 승객과 함께 nginx를 사용하고 있습니다.) 이러한 이벤트를 잡는 방법은 확실하지 않습니다. . 그래서 어떤 도움이라도?

+0

왜이 문제에 대해서만 redis 카운터에 만료를 설정하지 않는 것이 좋을까요? –

답변

0

서버가 언제 닫히는지는 쉽게 알 수 없지만 서버가 언제 시작되는지 쉽게 알 수 있습니다. 서버를 시작할 때이 카운터를 재설정하지 않는 이유는 무엇입니까? 서버의 시작 스크립트에서 재설정 작업을 추가하십시오.

관련 문제