Nonaktifkan ketersediaan obrolan Facebook (Aktif sekarang, aktif sekarang, aktif x menit yang lalu)

15

Bagaimana cara menonaktifkan ketersediaan obrolan Facebook? Obrolan saya sedang offline dan saya menggunakan Windows 7 dengan Firefox. Ketika saya masuk dengan akun saya yang lain melalui Facebook seluler saya dan membuka percakapan obrolan, saya melihat akun yang saya gunakan di komputer saya aktif "sekarang" setiap kali saya memindahkan mouse atau menyegarkan halaman.

Bagaimana cara menonaktifkannya? Apakah ada pesan detak jantung spesifik yang mungkin diblokir melalui AdBlock Plus atau semacamnya?

seorang pria jatuh cinta
sumber

Jawaban:

11

Oke saya telah menemukan solusi untuk memblokir status ini.

Pada dasarnya Facebook menggunakan timer dan karenanya akan mengirim pesan detak jantung ke server mereka dengan waktu idle setiap x menit.

Berikut ini contoh permintaan web tersebut:

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

Jika Anda membaca tautan itu, Anda akan melihat bahwa & idle = 117 adalah total detik akun telah diam. The state = secara offline singkatan apakah obrolan aktif atau offline

Perhatikan bahwa saya telah mengganti userid saya yang berjumlah 15 digit.

Jadi untuk menonaktifkan ini tambahkan saja aturan berikut di filter AdBlock Anda:

https://*-edge-chat.facebook.com

Salah satu kelemahan dari metode ini adalah Anda tidak akan menerima pesan secara real time. Anda harus menyegarkan halaman untuk mendapatkan pesan.

seorang pria jatuh cinta
sumber
1
Apakah sesuatu seperti ini berfungsi di Safari dengan pemblokir konten iOS 9?
0

Karena saya memberikan detail tambahan, saya menulis jawaban saya sendiri berdasarkan yang asli (bukan mengeditnya).

Ya, ada cara untuk melakukan ini, tetapi metode ini hanya berfungsi untuk Facebook dan Messenger berbasis web; Anda tidak dapat melakukan hal serupa untuk aplikasi seluler.

Pada dasarnya, Facebook menggunakan permintaan berjangka waktu di sisi server untuk memeriksa apakah klien masih tersedia. Jadi ujung depan (halaman web Facebook dimuat) secara berkala akan mengirim permintaan HTTP ( XHR ) dengan waktu idle ke server mereka.

Berikut ini contoh permintaan tersebut:

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

Catatan: Saya telah mengganti ID pengguna yang biasanya berupa angka.

Jika Anda membaca URL di atas, Anda akan melihat bagian yang mengatakan idle = 117 . Ini menunjukkan jumlah total detik dari akun yang tidak digunakan. The state = secara offline singkatan apakah chat diaktifkan atau dinonaktifkan.

Jadi, untuk menonaktifkan ini, tambahkan saja aturan berikut ke daftar filter pemblokir iklan Anda:

||*-edge-chat.facebook.com^$xmlhttprequest

Untuk menonaktifkan keduanya, Facebook dan Messenger, Anda dapat menambahkan dua baris berikut:

||*-edge-chat.facebook.com^$xmlhttprequest
||*-edge-chat.messenger.com^$xmlhttprequest

Atau baris tunggal, menggunakan regex :

/^https?\:\/\/\d+-edge-chat\.(facebook|messenger)\.com\/?/$xmlhttprequest

Beberapa kekurangan dari metode ini adalah Anda tidak akan dapat menerima pesan secara real time dan Anda tidak akan muncul online walaupun obrolan aktif. Anda harus menyegarkan halaman untuk menerima pesan baru.

Untuk menghindari kedua kelemahan ini, berikut adalah satu solusinya. Anda dapat menambahkan baris ini sebagai gantinya:

/^https?\:\/\/\d+-edge-chat\.facebook\.com\/pull\?.*state=offline/$xmlhttprequest

Atau, tambahkan ini untuk Facebook dan Messenger:

/^https?\:\/\/\d+-edge-chat\.(facebook|messenger)\.com\/pull\?.*state=offline/$xmlhttprequest

Hasil akhir dari ini adalah sebagai berikut:

  1. Ketika obrolan Anda mati, Anda tidak akan muncul online, aktivitas terakhir Anda tidak akan dilaporkan, dan Anda tidak akan dapat menerima pesan secara real time.
  2. Ketika obrolan Anda aktif, Anda akan muncul online, aktivitas terakhir Anda akan dilaporkan, dan Anda akan dapat menerima pesan secara real time.

Sayangnya, sepertinya tidak ada solusi lain karena ujung depan Facebook hanya dapat mengambil pesan ketika klien secara berkala melaporkan bahwa mereka aktif, maka pengambilan dilakukan setelah aktivitas terakhir dilaporkan. Kedua tindakan ini dimungkinkan oleh satu skrip back-end ( * -edge-chat.facebook.com / pull ), melalui permintaan yang sama; karena itu, Anda tidak dapat memiliki satu tanpa yang lain.

Giorgi Gzirishvili
sumber
-2

Saya menyetel ulang Chrome yang menonaktifkan ekstensi saya dan berfungsi dengan baik sekarang.

Pam Lane
sumber