我可以使用 Push API 向 phone 发送通知吗?

Can I use Push API to send a notification to a phone if they are in the same LAN without internet connection?

我喜欢为移动设备 (Android) 开发一个由本地服务器提供服务的网络应用程序。服务器应该能够通过 Push API 向手机发送推送通知。

设置将无法连接到互联网,如果解释的设置需要连接到某些云服务才能发送推送通知,我找不到注释。

嗯,恐怕你不能,每个浏览器供应商都将 serviceWorkers 订阅到自己的消息服务器(Chrome:fcm.googleapi.com,Firefox:updates.push.services.mozilla.com,等等) , 所以这是我们无法控制的...

虽然技术上有解决方案,但它需要您对您的网络进行排序 "hack",也就是说,它需要中间人攻击。您必须编写一个程序以将所有网络流量重定向到该程序(可能使用原始套接字并发送 ARP 数据包),然后让该程序侦听对那些消息服务器的请求(这些请求将通过 HTTPS - 端口 443 ),那么您的程序必须发送与真实消息服务器发送的响应完全相同的响应。这不是一件容易的事....但这是我唯一想不到的解决方案。

注意:您的浏览器将阻止任何未通过 "secure connection" 的 serviceWorker 注册,这意味着您的服务器必须通过 HTTPS 服务请求,或者您可以在用户设备上本地安装您的网络应用程序(因此"localhost").

可以访问它们

@Mounica:可能我来晚了一点,但只是发布我的答案,以防对您或访问此页面的其他人有所帮助。您的场景可以在 Wi-Fi 网络中使用 MQTT 协议来解决。您必须在网络中设置一个 MQTT 代理,并在您的 iOs 应用程序中创建一个 MQTT 客户端。您可以在与 GCM 工作相同的主题上将 MQTT 客户端订阅到 MQTT 代理,并使用 MQTT 代理向 MQTT 客户端订阅的主题发送推送通知。

MQTT with Android Applications