Not receiving push messages with cellular data off, but wifi on - ios6

I'm seeing strange behavior with APN: iphone4 (ios6): wifi ON, cellular data switched OFF: no push messages are received. As soon as I switch on cellular data, push messages are received again. (I use this setting because I have a tight restriction on the amount of mobile data, and want to force my iphone to use wifi only.)
I also have a wifi-only iPad, which receives push notifications as expected.
Anyone who can verify this with their setup?

Related

How is data cost calculated for Google channel api?

I'm writing a p2p chess game that sends 2 byte messages back and forth (e.g. e4 or c4). I'm considering the use of GAE Channel API. I noticed that this API causes the browser to send a heartbeat message to the server with POST URL https://849.talkgadget.google.com/talkgadget/dch/bind?VER=8&clid=...
That fires about every second. I won't be charged for the response data and response headers for those heartbeat requests correct?
Also, when I send data from the server to a browser over a channel, am I charged for only the json string itself or all http header/payload packets?
Google has a newer (and totally free!) API you should look at instead of the channel API (unless its restrictions cant be worked arround.)
GCM (google cloud messaging) is free, with a few restrictions like packet size (2kb in some cases) but it will handle everything for you (queuing, broadcast to all, broadcast to topics, one-to-one messaging, battery-efficient mobile libraries (android and iOS), native chrome support etc.
https://developers.google.com/cloud-messaging/
Make sure to also see this s.o. answer for GCM implementation tips: https://stackoverflow.com/a/31848496/2213940

Any reason why latency in updating timelineitem to my glass device?

i see latency issue - when i send a timelineitem from my glassware app, it takes a long time to appear on glass device.
I see the item in developer playground (https://developers.google.com/glass/playground)
Is it isolated issue on my WiFi (unlikely)? or some optimization done at Mirror server which queues timelineitems and sending in a specific interval to glass device?
Thanks
After doing some more investigation (In my case, i have setup private network inside enterprise network), i found out that some of the ports are blocked by firewall settings for incoming traffic from outside network, so glass device was not getting notifications from the Mirror Server.
It is possible either Channel API or XMPP is used in receiving notification messages from Mirror server to Glass. Those ports might have blocked by my firewall settings. I ran wireshark, still it is not clear which protocol or port is used in receiving notifications.
Also it is possible that glass device could get (HTTP GET) newly available cards from the mirror server by polling on specific time interval or other cases(changing WIFI network, etc).
I called Glass help, i could not get any feedback.
I would really appreciate if someone (from Google) could shed some light (port and protocol details) on how Glass gets notification from mirror server when new timeline card is available.
This is a known issue:
https://code.google.com/p/google-glass-api/issues/detail?id=185
Issue has been fixed by updating to XE10.

What is the alternative way of sending user location via sms on iOS6?

i have done a security app which locate a iPhone and send the GPS location of the phone through message to an associated number this functions works good until iOS 5, but the issue is sending SMS without users knowledge is restricted in iOS 6, so i need a help here instead of sending message, is there any other possible way or replacement for this function? any answer related to this method are appreciated.
Thank you.
You haven't specified whether your ios app has a server. If yes, you can transmit location to server and that in turn can transmit it to intended user via specific api.
If this is not correct, APNS is your friend. This is a way to send messages to desired devices only, the ones who explicitly registers through your app.
Another quite equivalent option is to store it in public back-end like parse.com. As soon as other devices start your app, they can pull your location from there. If their device is already live, parse.com can make sure to notify them as soon as you change your location value in their DB.

could not connect to the internet

I'm using CLLocationManager to determine the current location and i'm using maps.google.com for reverse geocoding. Whenever I switch from wifi to 3g network and try to run my app which gets the current location, the map application launches with a message 'could not connect to the internet' even though i have a good 3g signal.
This happens everytime. Anyone seen this type of behavior before ? Any ways to work around it besides preventing the app in the background? I am releasing the locationmgr object so there is no cache.

Does Windows Phone delay or batch HTTP requests? Seeing 600ms request delay to a server on the same LAN

I am developing a Windows Phone app that communicates with a server on home LAN over wifi, and I ran into a show stopper: an average round trip time for a tiny HTTP request inside LAN is 600-800ms.
This only happens with a standalone phone. If the phone is connected to PC running Zune the phone starts talking through Zune and the response time drops from 600ms to 20ms (!).
I wrote a small repro program that sends HTTP request every 100ms and ran Wireshark trace.
The trace shows that the server responds right away. It is the phone that delays requests and sends three to five requests at a time as a batch roughly once a second.
More info:
My program is using HttpWebRequest not WebClient.
I tried to spawn threads for each request, no luck.
This happens on WP7 release and on Mango.
The same thing whether I run off my work or home Wifi.
A low level implementation using socket API in Mango exhibits same behavior.
I have seen other posts on App Hub with the same issue. Please help clarify why this is happening.
Perhaps another experiment will help. Put your phone on charge and use the WiFi to send your messages. I suspect this batching is a result of a battery saving feature.
If I understand correctly, cellular networks link layer protocols are bursty so they can virtualise and run more connections than there are transponders. I suspect this is the root of your symptoms.

Resources