2014-02-21 2 views
1

Google App Engine이 채널 API 용 공식 Python 클라이언트 API를 제공하지 않기 때문에이 코드 https://bitbucket.org/lohre/gae_channel/src/8bd89615ac83?at=default을 따랐습니다.채널 API의 "알 수없는 SID"오류 Google App Engine - Python 클라이언트

문제 2 ~ 3 분이 경과하거나 때로는 "Unknown SID"오류가 발생합니다. 나는 또한 고침을 찾고 이것이 Constant disconnects due to channels going stale for no reason이라고 알았다.

그러나 제안 된 솔루션은 JavaScript 클라이언트 용입니다. 누군가가 코드를보고 제게 어떻게이 오류를 없앨 수 있습니까? 연결을 닫고 다시 시작하는 것이 좋습니다 (권장). 그러나이 작업을 수행 할 수는 없습니다. 어떤 도움을 주시면 감사하겠습니다 !! 감사!!

답변

0

채널 서비스 https://github.com/gelleouet/nodejs-googleapp-channel에 연결하기 위해 Node.js 모듈을 작성했을 때도 동일한 문제가있었습니다. 제대로 작동하는 자바 버전 https://github.com/gvsumasl/jacc을 복사했는데 문제가 발견되었습니다. 서비스 채널 시스템은 소켓을 청취하는 동안 변경되는 세션 ID를 사용합니다. 새 값을 제대로 읽지 못하면이 오류 "Unknow SID"가 각 채널 재 연결을 시작합니다. 이와 관련하여 몇 가지 단계가 있습니다 :

  1. GET/TalkGadget에/D : 된 ClientID 및 sessionId가가 (HTTP 응답 참조) 읽기

    var a = new chat.WcsDataClient("https://talkgadget.google.com/talkgadget/", 
    "", 
    "957778AE55824F5D", // clientId 
    "Nnc1-h3uIHY", // sessionId 
    "1394484158", 
    "WCX", 
    "AHRlWrpfZ3LMYkQU8bjBsHNPApz7SB71Sc00N5Ug" 
    );   
    
  2. POST/TalkGadget에/DCH/바인딩 : SID 새로운 읽기 아무것도 할 수 없습니다 : sessionId가이

    [[0,["c","290B58E8BA60D97F",,8] // 290B58E8BA60D97F is SID 
    ] 
    ,[1,["b"] 
    ] // 957778AE55824F5D is new sessionId 
    ,[2,["c",['957778AE55824F5D', ["ei","E4jToU4lPn0","1394484158",0,28800000,57600000,28800000] 
    ]] 
    ] 
    ] 
    
  3. POST가/TalkGadget에/DCH/바인딩 (HTTP 응답 참조).

  4. GET/TalkGadget에/DCH/바인드

  5. : 사용자 메시지와 새로운 sessionId가 읽기 ([XX [ "C"모든 메시지 [ 'XXXXXX'을 ... sessionId가 포함되어 있습니다)이

    [[147,["c",['957778AE55824F5D',["cds",1395328474416] 
    ]] 
    ] 
    

    ] 2 단계 또는 새로운 sessionId가 각 읽기 웹 소켓의 오른쪽 SID를 읽을 수없는 경우

후 오류 400 알 수없는 SID가 항상 발생합니다.

  • 먼저 연결 : 요청 1, 2, 3, 4 보관할 요청 4 살아
  • 재접속 요청 4 때 근접
  • 재접속 1, 2, 3, 4 : 오류 401 (유효하지 않은 토큰) 또는 때로는 400 (알 수 없음)
관련 문제