- From: Jimmy Wärting <notifications@github.com>
- Date: Fri, 30 Nov 2018 09:32:45 -0800
- To: w3c/push-api <push-api@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/push-api/issues/303@github.com>
When you subscribe for push you receive a endpoint and keys for generating push and payloads. You can forge a payload fully in the browser but not all endpoints don't respond with CORS headers. (Got a 401 when i was sending a OPTION preflight to google) That creates a problem: A browser is not able to send a push notification to another person If two persons have exchanged subscription shouldn't they be able to ping eachother to initiate a conversation without having to go throught a backend signaling server? I'm building a PWA and i want to host it on a static site like GH-Pages and do as little server stuff as possible. And a push subscription exchange only has to happen once - then you can store the subscription in localstorage or something and reconnect a friend later again and again without having to rely on a server. ```js function gotFriendsSubscription (friendsSubscription) { localStorage.myFriend = JSON.stringify(friendsSubscription) }) async function initiateConversation (friendsSubscription) { const { pushManager } = serviceWorkerRegistration const pushSubscription = await pushManager.getSubscription() const sdp = await ( // - create RTCPeerConnection // - create DataChannel // - wait for all iceCandidate to complete // - generate offer // - disable trickle ) const payload = JSON.stringify({ msg: "Hi lets start chatting", sdpOffer: sdp, // share my subscription so he can respond back with a sdpAnswer subscription: pushSubscription }) // My proposal: pushManager.send(friendsSubscription, payload) // maybe send som TTL ( time to live ) } // sometime later initiateConversation(JSON.parse(localStorage.myFriend)) ``` -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/w3c/push-api/issues/303
Received on Friday, 30 November 2018 17:33:06 UTC