Yeah, but you agree that the phone is initiating the event, right? It sends the initial payload to subscribe to events. If the phone switches networks, it has to restart the connection. It's not like an HTTP server that receives new connections at will. That would be a Push system.

Reply to this note

Please Login to reply.

Discussion

I separated these concepts in nostrdb because they are unnecessarily complected:

REQ up until EOSE are pull/poll

Notes pushed to you via subscriptions are push (according to my definition in terms of the initiator)

That means every client has Push Notifications from the start. I don't think it means what people expect it to mean (getting notified when the app is in the background or off entirely).

Yes all clients have push notifications until they are closed. Apple/Google just maintains another connection to keep the push notifications alive for when the app is not open.

Just to make sure i wasn’t taking crazy pills i put our argument into 4o to see what it thought:

https://chatgpt.com/share/67fd79aa-f54c-800f-b755-ec6b5787f60c

That feels like how Apple, Google and Samsung would answer this question so that they can sell their own infrastructure as a "Push". :)

An interesting history: BlackBerry, the creator of Push Notifications, did sell the BlackBerry Enterprise Server that would run inside the NAT and open connections directly to phones. Outside of enterprise service, the phone has to make the connection to their server as it happens today.

first pull, then subsequently push (and when network changes, repeat).

this is a mouthful though, so they just say the one that sounds cooler

This is like suggesting a laptop is named wrong because most of the time they're not placed on people's actual laps.