Tech Corner - 24. June 2016

Accessing CloudHub app using non-HTTP protocol

We have been working on a healthcare project for a while and it involved using HL7 MLLP connector to receive messages from a healthcare system.

We wanted it running on CloudHub, but since MLLP is not HTTP based protocol, it was not working in the standard way. For example, when deploying app to the CloudHub, the app is accessible on <app-name> either on port 80 or 443 depending on the use of HTTP/HTTPS.

If you hit this URL, you actually send a request to the load balancer, which forwards it to one of your workers (even if you have just one configured). It only accepts HTTP/HTTPS requests and therefore MLLP is discarded. The key here is to forward all MLLP packets to the actual worker directly by prepending "mule-worker-" to your app hostname. So it can look something like this: mule-worker-<app-name>

Now you can send MLLP (or other) packets to CloudHub on whatever port you configured in the app. You should be aware that only one worker will be used and therefore no load balancing will occur.