Go to Settings - Battery Saving. Even if you have the setting here permanently set to Disabled, slide right to Usage and search Whatsapp within the application list displayed. Tap on it and ensure the option to allow it running in background is enabled.
This seems to be not related to connectivity limitations like most replies I've found around. In my case at least the issue was due to the WP 8.1 new feature of disabling applications from running in background (application running, not network usage).
The option was well hidden and IMHO very badly UX designed by WP because one would expect the setting to be ignored: if you disable the battery saving settings, you'd hope none of the other options for applications would have any effect!
Disclaimer: my use case phone was set in spanish language and thus the menu names might be slightly different in english.
In my case this setting was enabled for unknown reasons (to me), this was my mother's phone and she might have accidentally enabled the option, or WP might have unilaterally decided that Whatsapp was using too much battery in background mode and disabled it, who knows.
I bet most people out there reporting that a reinstall solved the issue don't realise that it got solved basically because WP lost the setting about the app. As a general rule, whenever an app reinstall fixes an issue, it means you overlooked one setting out there.
This answer is relevant to Whatsapp as this was my specific issue, but I am quite sure Facebook (or any other app) experiencing the same issue would get fixed identically.
Hope you find this useful and you don't need to reinstall.