Facebook 채팅 가능 여부 비활성화 (지금 활성화, 바로 활성화, x 분 전 활성화)


15

Facebook 채팅 가능 여부를 어떻게 비활성화합니까? 채팅이 오프라인 상태이며 Firefox에서 Windows 7을 사용하고 있습니다. 모바일 Facebook을 통해 다른 계정으로 로그인하고 채팅 대화를 열면 마우스를 움직이거나 페이지를 새로 고칠 때마다 컴퓨터에서 사용하는 계정이 "지금"활성화되어있는 것을 볼 수 있습니다.

어떻게 비활성화합니까? AdBlock Plus 등을 통해 차단 될 수있는 특정 하트 비트 메시지가 있습니까?

답변:


11

이 상태를 차단하는 솔루션을 찾았습니다.

기본적으로 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

이 방법의 한 가지 단점은 실시간으로 메시지를받지 못한다는 것입니다. 메시지를 받으려면 페이지를 새로 고쳐야합니다.


1
iOS 9 컨텐츠 차단기가있는 Safari에서 이와 같은 기능이 작동합니까?

0

추가 세부 정보를 제공하고 있으므로 원본을 기반으로 답변을 작성하고 있습니다 (편집하는 대신).

예,이 방법이 있지만이 방법은 웹 기반 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

이것의 최종 결과는 다음과 같습니다.

  1. 채팅이 꺼져 있으면 온라인에 표시되지 않고 마지막 활동이보고되지 않으며 실시간으로 메시지를받을 수 없습니다.
  2. 채팅이 켜져 있으면 온라인으로 나타나고 마지막 활동이보고되며 실시간으로 메시지를받을 수 있습니다.

불행히도 Facebook의 프론트 엔드는 클라이언트가 주기적으로 활성 상태임을보고 할 때만 메시지를 가져올 수 있기 때문에 다른 해결책이없는 것 같습니다. 따라서 마지막 활동이보고되면 가져 오기가 수행됩니다. 이러한 조치는 모두 동일한 요청을 통해 단일 백엔드 스크립트 ( * -edge-chat.facebook.com / pull )로 가능합니다. 따라서 다른 하나 없이는 가질 수 없습니다.


-2

확장 프로그램을 사용 중지하고 이제 정상적으로 작동하는 Chrome을 재설정했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.