실제 서버에 붙어 확인한 내용이다. 공식 문서에 없는 것들이 있다.
-
핸드셰이크는
pingInterval=25000,pingTimeout=60000. 생존 시한이 85초로 넉넉하다. -
네임스페이스는 루트(
/)다. 세션 URL에 경로가 없다. -
인증은 핸드셰이크 쿼리의
auth하나로 끝난다. 여기에 더해 루트 네임스페이스로 CONNECT를 보내면 인증 없는 새 연결로 취급해 다음과 같이 응답한다.
| // Base code: https://gist.github.com/aamiaa/7cdd590e3949cd654758bc90bcb4710b | |
| let wpRequire = webpackChunkdiscord_developers.push([[Symbol()], {}, r => r]); | |
| webpackChunkdiscord_developers.pop(); | |
| let ApexStore = Object.values(wpRequire.c).find(x => x?.exports?.A?.createOverride).exports.A; | |
| let UserStore = Object.values(wpRequire.c).find(x => x?.exports?.A?.__proto__?.getCurrentUser).exports.A; | |
| let FluxDispatcher = Object.values(wpRequire.c).find(x => x?.exports?.A?.__proto__?.flushWaitQueue).exports.A; | |
| let api = Object.values(wpRequire.c).find(x => x?.exports?.Bo?.get).exports.Bo; | |
| let globalCopy = navigator.userAgent.includes("Firefox") ? navigator.clipboard.writeText.bind(navigator.clipboard) : copy |