Why Push Notifications Are Unlikely To Be Added
One of the biggest features requested so far has been Push Notification support for Xblaze iPhone. The premise:
When a user quits the app, instead of being logged out of Xfire right then, the user would stay logged in and receive push notifications when new messages arrive.
There are a few problems with implementing this feature, some technical, some legal.
First the technical limitations.
Some people may not fully understand how push notifications work. So here’s a quick overview.
There are 5 major components:
- The provider (In this case, Xfire)
- The notification (The new message)
- Apple’s Push Notification Service
- The user’s unique iPhone
- The Client Application (Xblaze)
For push notifications to work, the provider needs to know about the iPhone, and it’s UDID (Unique Device Identifier). Without knowing the UDID of the iPhone, there’s no way to get a notification from the server to the iPhone. If the Xfire could know your iPhones UDID, it would be able to create a notification and ‘push’ it to your device. But there is no way for Xfire to know your iPhone’s UDID.
So, the first technical difficulty is that there is absolutely no way to get Xfire to generate a push notification from its root server or no way to get it from the sercver to your iPhone. They’re not going to implement it, and we don’t have any access or control to make one ourselves. To get around this, we could set up a relay server that would maintain the Xfire Session and communicate between the Xfire server and the Client, and register the iPhone for push notifications (using its UDID).
Something like this (I don’t have time to make a pretty diagram):
Xblaze Sends UDID to relay server,
Relay Server receives message from Xfire,
Relay Server forwards message to Xblaze via push notification.
Unfortunately it’s not quite as simple as just setting up the relay server and carrying on. The relay server would require that all of the communication between Xblaze and Xfire go through this server. That includes logging in, sending/receiving messages, adding friends, retrieving game info, etc., etc.
It would be a massive undertaking and would probably require writing a complete implementation of the Xfire server itself so that it could proxy everything that the Xfire server does.
Once again, this is very unlikely to occur as the entire Xfire protocol is still yet to be documented, which large chunks still being undefined. In order to implement the entire server, we’d need to know exactly how everything worked…
Then, after spending the huge amount of time it would take to write and test the server, there’s the logistics of finding somewhere to host it, pay for it, maintain the health of the server, not to mention the cost of the server hardware. Also the server would have to be able to cope with accommodating thousands of Xfire users. This is not something that can be lightly thrown around as a “nice to have” feature.
Then even if someone did spend all the time, effort and money on writing this hypothetical relay server, they wouldn’t be allowed to use it anyway, which brings me on to the legality of this issue.
The Xfire Terms and Conditions specifically state (Emphasis mine):
You may not authorize any third party to access or use the Service on your behalf using any automated process such as a robot (or ‘bot’), a spider or periodic caching of information stored by the Service on your behalf, without a separate written agreement with Xfire.
It is against Xfire’s Terms and Conditions to implement such a server, and it would breach your agreement with Xfire if you used a service that relayed your connection.
Xblaze and other 3rd party Xfire clients are already treading a very fine line in terms of legality, because they’re only made possible by reverse engineering the Xfire protocol. If at any moment Xfire decided that they wanted to pursue the issue of reverse engineering, they could send a cease and desist order to all 3rd party Xfire clients, and make them stop working – or they could change the protocol and lock everyone out.
If Xblaze received a C&D order from Xfire, I would have no choice but to comply, as I am technically in breach of the Terms and Conditions, as is every other 3rd party Xfire client developer.
I’m hoping it will never come to that though, but I don’t think implementing any kind of push notification support is feasible. Possible: maybe, feasible: not right now.

Well, concerning the reverse engineering: In my view the data any program on my PC produces and sends unencrypted to any server in the world CAN NOT by copyrighted. Otherwise all service providers in this world would have a big problem
And additionally I don’t think many European countries forbid it at all. And the DMCA is not valid over here. So they can’t really do you anything besides closing all accounts that use this software or really changing the protocol.
And TaC paragraph you quoted does not really forbidy proxying/relaying the data between the server and the client. Is just forbids you to spam/log the data sent between the clients and “download” the information on the xfire servers (game servers etc.).
Otherwise I would have received a mail for publically announcing my small web client on the Xfire forums. (http://webchat.dryder.de) This one does btw the same stuff you described. It’s a daemon which holds the connection to the Xfire network and the webfrontend queries information from it.
It’s not the fact that the transmitted data is copyrighted, it’s simply that the data is covered by the Ts&Cs which Xfire are perfectly within their rights to enforce. I’m not a lawyer, so whether or not that means they can issue Cease and Desist orders, I’m not 100% sure about, but I don’t want to risk it, that’s for sure.
As for the second part, the Ts&Cs do explicitly forbid access to the Xfire network via any automated means. While that may not include relay servers in general, it DOES include a relay servers that is acting in an automated way, as it would need to if the user had already quit the client application (which is the feature spec for Push Notifications).
Finally, since these terms only apply to Xfire, and aren’t Laws, I doubt any real legal action can be taken, yet they could still disable 3rd party Xfire clients and still be within their rights. It’s not something I want to risk.
well remember the reason am sure they forbid automated bots, is due to the attacks happen to xfire website and client i think they wanna avoid it, but you can try to see if they are willing to let a iphone app to work with there servers
but most good apps like ebuddy as a time out for push that can be a useful idea if push come available limit say 5 minutes or 3 hours of some sort if there a way to lock it i think xfire would agree but i might as well talk out of my hat