문제

나는 Erlang과 혜성 채팅을하고 있습니다. 메시지 전송에는 하나의 연결 (긴 고정) 만 사용합니다. 그러나 아시다시피, 오랫동안 폴링 연결을 항상 연결할 수는 없습니다. 새 메시지가 오거나 타임 아웃에 도달 할 때마다 잠기고 서버에 다시 연결됩니다. 연결이 다시 연결되기 전에 메시지가 전송되면 채팅의 무결성을 유지하는 것이 문제입니다.

또한 사용자가 Comet-Chat로 둘 이상의 창을 열면 모든 채팅 메시지가 동기화를 유지해야하므로 사용자가 많은 긴 정통 연결을 가질 수 있습니다. 따라서 모든 메시지를 제 시간에 전달하기는 어렵습니다.

모든 연결에 대한 메시지 대기열을 작성해야합니까? 아니면 이것을 해결하는 더 좋은 방법은 무엇입니까?

도움이 되었습니까?

해결책

저에게는 채팅에 연결된 사용자 당 하나의 프로세스/메시지 큐를 갖는 가장 간단한 방법입니다 (채팅 창 이상). 채팅 창 응용 프로그램에서 마지막 메시지의 타임 스탬프를 추적 하고이 타임 스탬프 이후에 메시지를 요청할 때를 추적합니다. 메시지 큐 프로세스는 합리적인 시간 동안 만 메시지를 유지해야합니다. 이 시나리오에서 재 연결은 모두 클라이언트에 달려 있습니다. 다른 시나리오에서는 서버에서 일종의 HART 비트를 보낼 수 있지만 나에게는 덜 신뢰할 수있는 것 같습니다. 타임 아웃보다 단절된 다른 이유로 문제를 해결하지 못합니다. 서버 측 대기열의 변형은 고객 당 클라이언트 당 하나의 대기열로, 채팅방 당, 당 ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top