복붙노트

[REDIS] WebSocket을 통해 역사를 가진 실시간 pubsub 채팅

REDIS

WebSocket을 통해 역사를 가진 실시간 pubsub 채팅

나는 Disqus에 자신의 의견을 시스템에 한 일을 만들기에 관심이 있어요 : http://highscalability.com/blog/2014/5/7/update-on-disqus-its-still-about-realtime-but-go-demolishes .html 중에서

인프라의 가장 인상적인 부분은 Nginx에 푸시 스트림 모듈입니다 :

물론이 Nginx의 모듈은 데이터 저장을 지원하지 않습니다. 저자가 말했듯이 만에 메모리 메커니즘은 push_stream_store_messages 지시어로 지원되지만 :

레디 스의 메시지를 저장하기 위해 관리하는 이동 백엔드 가입자를 유지 Nginx에 내부 POST를 통해 게시하여 다음 불구하고 Disqus에 직접 오히려 Nginx에 메시지를 게시하지 않는 것이 분명하다.

사람이 이전에도 우리는 새로운 메시지를 푸시 스트림 모듈을 사용하여 페이지로드 레디 스를 통해 메시지 기록을 가져 오는와 경험이 있습니까? 당신은 한 번에 오래된 메시지 기록을 밀거나로드 일반 HTML 페이지 뒤에 표시 새 메시지 pubsub 다음과 같이 렌더링해야합니까?

논리는 가능한 한 분리 될 필요가있다. 나는 실시간 메시지 통신을위한 사용자와 Nginx의 사이에 차단 메커니즘을 소개하려고하지 않습니다. 것이 아래 좋은 솔루션이 될?

, 레디 스에서 메시지 저장소를 동의 페이지로드 데이터와 디스플레이를 가져 오기 : 그것은 개발 단지 2 백엔드 요청이 필요합니다. 바람직하게 빛을 비 차단 백엔드 레디 스에 루아 모듈 또는 HTTP 인터페이스와 같은 요구는 Webdis을했다.

내가보기의 아키텍처 관점에서 그 메커니즘에 똑똑한 사람들의 의견을 알고 싶습니다, 어떤 코드 예제 예상.

해결법

    from https://stackoverflow.com/questions/32602100/real-time-pubsub-chat-with-history-via-websockets by cc-by-sa and MIT license