채널 서비스 https://github.com/gelleouet/nodejs-googleapp-channel에 연결하기 위해 Node.js 모듈을 작성했을 때도 동일한 문제가있었습니다. 제대로 작동하는 자바 버전 https://github.com/gvsumasl/jacc을 복사했는데 문제가 발견되었습니다. 서비스 채널 시스템은 소켓을 청취하는 동안 변경되는 세션 ID를 사용합니다. 새 값을 제대로 읽지 못하면이 오류 "Unknow SID"가 각 채널 재 연결을 시작합니다. 이와 관련하여 몇 가지 단계가 있습니다 :
GET/TalkGadget에/D : 된 ClientID 및 sessionId가가 (HTTP 응답 참조) 읽기
var a = new chat.WcsDataClient("https://talkgadget.google.com/talkgadget/",
"",
"957778AE55824F5D", // clientId
"Nnc1-h3uIHY", // sessionId
"1394484158",
"WCX",
"AHRlWrpfZ3LMYkQU8bjBsHNPApz7SB71Sc00N5Ug"
);
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]
]]
]
]
POST가/TalkGadget에/DCH/바인딩 (HTTP 응답 참조).
GET/TalkGadget에/DCH/바인드
: 사용자 메시지와 새로운 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 (알 수 없음)