팀 공동 작업을 허용 할 웹 응용 프로그램을 구축 중입니다. 즉, 한 팀 내의 사용자는 공유 데이터를 편집 할 수 있으며 수정 사항은 연결된 다른 팀 구성원에게 푸시되어야합니다.Socket.io를 사용하여 팀 공동 작업을 지원하는 웹 응용 프로그램 만들기
Socket.io 룸은이를 달성하는 합리적인 방법입니까?
즉 (대략 말하기)
- 연결된 모든 팀원 (동적 제 팀원 접속시 생성됨) 같은 방에 참여한다.
- 서버에서 수신 한 모든 편집 내용이 방에 브로드 캐스트됩니다 (지속성 외에도 등).
- 클라이언트 쪽에서받은 편집 내용은 브라우저에 표시된 공유 데이터 을 업데이트하는 데 사용됩니다.
분명히 동일한 데이터에 대한 동시 업데이트를 처리해야합니다.
이 방법이 합리적인 방법으로 보이나요?
편집 세션 중에 공유 데이터를 보관하는 Redis 데이터베이스 (일정 간격으로 지속성 데이터베이스에 '플러시 (flush)'되는 것과 같이)를보다 강력하게 고려해야할까요?
감사합니다. 그래서,이 경우에 Redis를 사용하면 (그리고 아마도 Trello와 같은 앱에서) 사용자가 작업하고있는 실제 데이터를 저장하는 것이 아니라고 말하고 싶습니다. 대신 실제 세션 데이터 (예 : 현재 socket.io 회의실 등)를 저장하는 것입니다. 그 이유는 규모면에서 Node.js 프로세스가 두 개 이상 있고 모두 동일한 세션 데이터를 공유해야하기 때문입니다. – William
그 이유 중 하나는 가장 중요합니다. 다른 하나는 Redis가 pub-sub를 할 수 있다는 것입니다. – alessioalex
pub/sub는 RedisStore에서 여러 노드 간의 세션 데이터 동기화를 처리하는 데 사용됩니다. 즉 위의 예에서 팀 구성원에게 수정 사항을 방송하는 것은 내 사용자 정의 Socket.io 코드입니다. – William