The Lounge is rated PG. If you're about to post something you wouldn't want your
kid sister to read then don't post it. No flame wars, no abusive conduct, no programming
questions and please don't post ads.
I saw a great match, marred only by Origi being unable to hit a barn door from 3 inches away. He really let Belgium down; not taking anything away from Italy, they played very well and did what they needed to do.
In a competition where showing you can tie your shoelaces nicely is almost enough to get you into the knock-out phase, I wouldn't worry too much just yet. It would help if you had one player who knew what that big white thing at the end of the pitch was for, though.
15 month ago I was hired by my current company for a "super urgent" project.
One key requirement was that client server communication should be reliable sequential, with great control over the particular network interfaces used (wifi / 4G / IP-Radio) despite unreliable network.
I.e. the tablet is on a truck. The truck send a message about an incident inside a tunnel. While there is no network connection (inside the tunnel!). As soon as out of the tunnel the message goes and the server responds. No message should be lost, yada, yada....
Anyway.. 15 month later, it's government, they still haven't bought it (and they were secretly using another app internally, power struggle story!). Anyhow other app keeps crashing, competitor software was causing business difficulty, they throw them out and were really impressed by ours demo. Finally gonna buy it! Really like when they keep disconnecting / reconnecting network and oooo... it keeps working like nothing happened! I take great joy and pride and how this feature impress customer!
By the way I was inspired by some CP article here which suggested a single method WCF interface Send(Message) for ALL communication as a starting point (using Message subclasses, obviously). That was my starting point... (by Sacha Barber and/or Peter Hanlon?!)
Though we didn't used WCF at all in the end...
As a side note, to share some WCF though, I see little point in WCF in fact, come to think of it... Particularly since the benefit it provides are minor when balanced against the configuration hassle it comes with and the fact that once serialization is taken care of, client server communication is no big deal...
Web API on the other hand is quite good!
Anyhow in this app we use custom communication protocol (of my creation) with TCP and.. UDP support!
First time I do an UDP server too! haha!
seems like you'd be queueing/storing messages while no connection, then as soon as a connection becomes available and the queue != empty, you'd send its contents - I've oft been accused of over-engineering things, but I do know a bit about reliable data transmission
That's why I do indeed!
Furthermore message are queued in the database in (the unlikely ) case the app crashes. And there is a little app that check the app is alive every 5 seconds.
Oh, and also, we keep (client initiated) connection alive between client and server. This way the server can talk back to clients, since the client don't have a public well know IP available otherwise.
«There is a spectrum, from "clearly desirable behaviour," to "possibly dodgy behavior that still makes some sense," to "clearly undesirable behavior." We try to make the latter into warnings or, better, errors. But stuff that is in the middle category you don’t want to restrict unless there is a clear way to work around it.» Eric Lippert, May 14, 2008