当应用程序在 Angular PWA 中处于后台时,如何确保 socket.io 不会关闭连接

How to do I make sure that socket.io does not close connections when the app is in background in a Angular PWA

socket.on('new-notification', function(data) {

  let room_id = data.room_id;
  var receiver_id = data.receiver_id;
  var booking_request_id = data.booking_request_id;
  var message = {
    to: notification_payload,
    collapse_key: 'green',

    notification: {
      title: 'Tittle',
      body: "New message from  User",
      icon: site_url + 'assets/icons/icon- 72x72.png',
      sound: 'default',
      url: redirect_url,
    },
    data: {
      title: 'Tittle',
      body: "New message from  User",
      icon: site_url + 'assets/icons/icon- 72x72.png',
      sound: 'default',
      url: redirect_url,
    }
  };

  fcm.send(message, function(err, response) {
    if (err) {
      console.log("Something has gone wrong!");
    } else {
      console.log("Successfully sent with response: ", response);
    }
  });
}
});
}
else {

}
}
});
});

我有一个 Angular PWA,它使用 Socket.io Node 和 express 服务器使用 Firebase Cloud Messaging 进行实时消息传递和推送通知。消息传递工作正常,但问题是当用户离开应用程序时,他们将无法接收通知,但只有在应用程序上活跃时才会收到通知。我的假设是当用户离开应用程序时,Socket io 正在断开连接。那么有什么方法可以确保即使应用程序在后台 运行 套接字也保持活动状态。 我附上了我的通知片段。非常感谢您的帮助

为此,您需要为 Angular、这些 运行 设置一个服务工作线程,并在设备通常将应用程序置于睡眠模式时让您的应用程序保持活动状态以执行某些任务.

您可以按照有关创建服务工作者的最新 Angular 文档进行操作 HERE