It is trivial to deploy any Push Framework based server in form of a Windows service. The Server class provides the following methods : ::start ::pause ::resume and ::stop. When writing a code that interacts with the SCM you usually provide 4 entry points that correspond to the 4 possible actions : start, stop, resume [...]
The Dashboard and Push Framework use a specific protocol to exchange information. The two program do evolve dependently/independently. Sometimes, changes mean that past Dashboard versions can not talk to new Push Framework versions. The opposite is also true. A rule has been made to make the Dashboard depend on Push Framework onward. When the Dashboard [...]
In many server programs, the use of a backend database server is needed to persist data. If you use Push Framework, you may wonder about the best way how to use database connections and queries operations. We know that for the 90% of cases it is not possible to use one database server connection concurrently [...]
To test Broadcast you can follow this intuitive idea : 1. Create a Push Framework based server that initializes a number of broadcasting channel. Choose different values for teh priority and quota number 2. Channel should not require explicit subscription. Design a client program that connects, receives server data and reports statistics , mainly the [...]
Except for the IOCP mechanism available for Windows Server OS, I can’t recall which code is only dependent on Windows plateform. Porting Push Framework to other OS should never be a big deal. However I am not sure if IOCP is available on all OSs. Considering the lack of time and the very fact that [...]
It is very important to note that Push Framework is a parallel framework. Never make the assumption that Service::handle method can only be executed by a single thread at once. Even for the one Service object, two threads may act on its same ::handle method. The two function used to manipulate client keys/structures : ClientFactory::getClient [...]
Push Framework was designed by making a concrete separation between “logged clients” (PushFramework::Client) and the underlying TCP connections. By default, evry connection request is accepted. However, the developer get the chance to check if the connection is a legitemate client before allocating resources and attaching the connection to a Client object. First, the developer can [...]