2014-03-27 1 views
4

Chrome을 통해 수신자에게 여러 명의 발신자를 동시에 연결합니다. 보낸 사람 중 하나가 연결을 끊으면 (브라우저 창을 닫고, 페이지를 새로 고치고, 연결이 끊어지는 등 ...) "onSenderDisconnected"이벤트가 수신기에서 실행되기를 원합니다.클라이언트를 수신자 세션에 연결 해제 및 다시 연결

지금까지이 문제는 어떤 이유로 든 연결이 끊어진 경우에만 발생하는 것으로 보입니다. 예를 들어 발신자가 단순히 새로 고침을하면 발신자가 삭제되지 않고 새 발신자가 만들어집니다. 즉, 동일한 출처에서 2 명의 발신자를 '연결'시킬 수 있습니다.

재발신 할 때 이전 발신자를 삭제할 수 있습니까? 다시 재발신 할 때 동일한 발신자 ID를 유지할 수있는 방법이 있습니까?

각 발신자에게 버튼을 사용하여 수동으로 세션 연결을 해제 할 수있는 옵션을 제공하고자합니다. 현재이 작업을 수행하는 유일한 방법은 기기로의 전송을 중지하는 것이지만 모든 사용자에 대해 세션을 종료합니다. 어떻게이 일을 할 수 있을까요?

답변

1

첫 번째 항목 (즉, 다시로드 할 때마다 보낸 사람을 더 추가)에 대해 조사하기 위해 내부 문제를 열었습니다. 두 번째 경우 현재 애플리케이션을 중지하지 않고 크롬 발신자의 연결을 끊을 수 없습니다. (a) 응용 프로그램 + 연결 끊기 (전송 확장 프로그램을 사용하는 경우)를 중지하거나 (b) "아무 일도 일어나지 않았습니다"와 같은 탭을 닫을 수 있습니다. 우리는 다른 두 플랫폼의 API에 더 가까이 다가 갈 것을 고려하고 있습니다.

+3

나는 두려웠다. "Sender"개체의 배열을 만들고 그에 따라 ID를 변경하여 첫 번째 문제를 처리하고 있습니다. 콜론 (예 : 2 : 2 : 클라이언트 : 23522)과 같은 숫자는 특정 발신자에게 동일하게 유지됩니다. 그래서 그 번호를 기반으로 보낸 사람의 실제 ID를 업데이트합니다. 이것은 정상적으로 작동하는 것으로 보이지만 이상한 해결 방법입니다. 가까운 장래에 클라이언트를 연결 해제/다시 연결하는 더 좋은 방법이 있기를 바랍니다. – ninemind

+0

@ninemind 설명하는 해결 방법을 사용하여 답변을 게시 하시겠습니까? 문제를 해결할 수있는 패치를 제공하는 것이 좋을 것입니다. 고맙습니다! –

+0

@dome 방금 대답했음을 알리면 알려 줬습니다. – ninemind

3

첫 번째 문제는 직접 "보낸 사람"을 추적하여 처리하고 있습니다.

각 발신자는 "id"가 있습니다. 2 : client : 23522와 같은 것. 콜론 (2) 앞에있는 첫 번째 숫자는 특정 클라이언트가 세션에 몇 번이나 재 연결 되더라도 동일하게 유지되는 것으로 보입니다. 두 번째 숫자 (23522)는 매번 변경됩니다.

연결 클라이언트의 첫 x 째 번호를 확인하여 이것이 새 클라이언트인지 재 연결 한 기존 클라이언트인지를 판별 할 수 있습니다. 이렇게하면 클라이언트/발신자간에 메시지를주고받을 때 "활성"클라이언트 배열을 유지하고 사용되지 않은 클라이언트 ID를 잊어 버릴 수 있습니다.

+0

대답은 자신이하는 일에 대해 명확한 설명을 제공합니다. 누락 된 유일한 사실은 보낸 사람을 수동으로 제어 할 수있는 몇 가지 코드 컨텍스트입니다. 내 생각 엔'onSenderConnected'를 사용하지만 추측 일뿐입니다.) 감사합니다! –

+1

@dome 현재 사용 가능한 예제 코드가 없지만'onSenderConnected' 메서드에서 처리 한 것으로 가정하는 것이 옳습니다. 나는 기회가있을 때 코드 샘플로 나의 대답을 업데이트 할 것이다. – ninemind

+0

좋습니다! 고맙습니다 ;) –