Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Service Watcher based on Reactive Extensions

The code parts with Rx Observables are based on this blog entry.

This solution runs in Azure Emulator and receives client heartbeats via POST-requests.

We, at advarics GmbH, use a similar version to control our remote Services in real-time.

The ServiceWatcher utilizes a simple Database structure following the Code First workflow.

Every heartbeat entry gets inserted into the table Heartbeat and can be received via GET.

For example to receive all Heartbeats: http://localhost:81/odata/Heartbeats

A "heartbeat" is just a simple JSON payload that describes the client and which Rx Stream it belongs to. Rx Streams are configured via the Azure WebRole settings. There's also an option to configure the WebApp to run as an ordinary IIS application. In this case you'd use the Web.config settings.

I recommend Fiddler to send Heartbeat-Requests.

Heartbeats-Log in Azure Emulator

The configuration of streams is done in Azure WebRole config

Streams are defined in the RxStreams field as comma-separated values. Every stream has its own timeout settings which is by convention RxStreamTimerSTREAMNAME.

For example: RxStreamTimerWebShop for Stream named WebShop. If a stream has no explicit timeout set then the RxStreamTimerDefault will be used.

To be informed about disconnected clients (that is, clients who are not sending heartbeats within an expected time frame) you can set up an SMTP mail-server to deliver warning notices.

Developed at

advarics GmbH, Innsbruck (Austria)

Branch Office Bochum (Germany)




Reactive Extensions on ASP.NET & Azure



No releases published
You can’t perform that action at this time.