답변:
이 상태를 차단하는 솔루션을 찾았습니다.
기본적으로 Facebook은 타이머를 사용하므로 x 분마다 유휴 시간이있는 서버에 하트 비트 메시지를 보냅니다.
이러한 웹 요청의 예는 다음과 같습니다.
https://1-edge-chat.facebook.com/pull?channel=userid&seq=0&partition=-2&clientid=18ae8ecc&cb=ie3k&idle=117&qp=y&cap=8&msgs_recv=0&uid=userid&viewer_uid=userid&msgr_region=FRC&state=offline
해당 링크를 읽으면 & idle = 117 이 계정이 유휴 상태 인 총 시간 (초) 임을 알 수 있습니다 . 상태 = 오프라인 채팅이 활성화 또는 오프라인 여부를 의미
15 자리 숫자 인 사용자 ID를 교체했습니다.
이를 비활성화하려면 AdBlock 필터에 다음 규칙을 추가하십시오.
https://*-edge-chat.facebook.com
이 방법의 한 가지 단점은 실시간으로 메시지를받지 못한다는 것입니다. 메시지를 받으려면 페이지를 새로 고쳐야합니다.
추가 세부 정보를 제공하고 있으므로 원본을 기반으로 답변을 작성하고 있습니다 (편집하는 대신).
예,이 방법이 있지만이 방법은 웹 기반 Facebook 및 Messenger에서만 작동합니다. 모바일 앱과 유사한 작업을 수행 할 수 없습니다.
기본적으로 Facebook은 서버 측의 시간 요청을 사용하여 클라이언트가 여전히 사용 가능한지 확인합니다. 따라서 프론트 엔드 (로드 된 Facebook 웹 페이지)는 유휴 시간이 있는 HTTP 요청 ( XHR )을 서버에 주기적으로 보냅니다 .
이러한 요청의 예는 다음과 같습니다.
https://1-edge-chat.facebook.com/pull?channel=p_<UserID>&seq=0&partition=-2&clientid=18ae8ecc&cb=ie3k&idle=117&qp=y&cap=8&msgs_recv=0&uid=userid&viewer_uid=userid&msgr_region=FRC&state=offline
참고 : 일반적으로 숫자 인 사용자 ID를 바꿨습니다.
위의 URL을 읽으면 idle = 117 부분이 표시 됩니다. 계정이 유휴 상태 인 총 시간 (초)을 나타냅니다. 상태 = 오프라인 대화가 켜져 있거나 꺼져 있는지를 나타냅니다.
이를 비활성화하려면 광고 차단기의 맞춤 필터 목록에 다음 규칙을 추가하십시오.
||*-edge-chat.facebook.com^$xmlhttprequest
Facebook과 Messenger를 모두 비활성화하려면 다음 두 줄을 추가하면됩니다.
||*-edge-chat.facebook.com^$xmlhttprequest
||*-edge-chat.messenger.com^$xmlhttprequest
또는 정규식을 사용하는 한 줄 :
/^https?\:\/\/\d+-edge-chat\.(facebook|messenger)\.com\/?/$xmlhttprequest
이 방법의 몇 가지 단점은 실시간으로 메시지를받을 수 없으며 채팅이 켜져 있어도 온라인에 표시되지 않는다는 것입니다. 새 메시지를 받으려면 페이지를 새로 고쳐야합니다.
이 두 가지 단점을 피하기 위해 한 가지 해결 방법이 있습니다. 이 줄을 대신 추가 할 수 있습니다.
/^https?\:\/\/\d+-edge-chat\.facebook\.com\/pull\?.*state=offline/$xmlhttprequest
또는 Facebook과 Messenger 모두에 추가하십시오.
/^https?\:\/\/\d+-edge-chat\.(facebook|messenger)\.com\/pull\?.*state=offline/$xmlhttprequest
이것의 최종 결과는 다음과 같습니다.
불행히도 Facebook의 프론트 엔드는 클라이언트가 주기적으로 활성 상태임을보고 할 때만 메시지를 가져올 수 있기 때문에 다른 해결책이없는 것 같습니다. 따라서 마지막 활동이보고되면 가져 오기가 수행됩니다. 이러한 조치는 모두 동일한 요청을 통해 단일 백엔드 스크립트 ( * -edge-chat.facebook.com / pull )로 가능합니다. 따라서 다른 하나 없이는 가질 수 없습니다.