停用Facebook聊天功能(立即激活,立即激活,在x分钟前激活)


15

如何禁用Facebook聊天功能?我的聊天处于离线状态,并且我将Windows 7与Firefox一起使用。当我通过移动Facebook用其他帐户登录并打开聊天对话时,每当我移动鼠标或刷新页面时,都会看到我在计算机上使用的帐户“立即”处于活动状态。

如何禁用它?是否有一些特定的心跳消息可以通过AdBlock Plus或其他方式阻止?

Answers:


11

好的,我已经找到阻止此状态的解决方案。

基本上,Facebook使用计时器,因此它将每隔X分钟向空闲时间发送心跳消息到其服务器。

这是此类Web请求的示例:

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

由于我要提供其他详细信息,因此我将基于原始内容(而不是对其进行编辑)编写自己的答案。

是的,有一种方法可以执行此操作,但是此方法仅适用于基于Web的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

或单行,使用regex

/^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浏览器,该浏览器已禁用我的扩展程序,现在可以正常运行了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.