Skip to content
Andy Theuninck edited this page Aug 5, 2015 · 2 revisions

CORE will use RabbitMQ for Hardware Driver to POS communication if RabbitMQ is installed, running, and configured correctly. Consider this an experimental feature.

Installing RabbitMQ

This is presumably a simple package manage command on most Linux distros. In Windows, download the RabbitMQ binary installer. If necessary, it will prompt you to download and install erlang first. Next, enable websockets. Locate the rabbitmq-plugins application and run

rabbitmq-plugins enable rabbitmq_web_stomp

Then go to http://127.0.0.1:15674/stomp. It should be a page that says welcome to SockJS. Restarting the rabbitmq service may be necessary.

Compile NewMagellan w/ RabbitMQ support

Get the .NET library (https://www.rabbitmq.com/dotnet.html). Drop the RabbitMQ.Client.dll file in the NewMagellan directory. Recompile and restart the driver.

Usage

There is no configuration. When POS starts up, it checks connectivity on port 15674. If that port is listening, it sends the driver a message to use RabbitMQ. Otherwise it sends the driver a message not to use RabbitMQ. Some back-and-forth handshaking might be cleaner, but at the moment don't run RabbitMQ on a lane unless the NewMagellan driver supports it.

Linux support

No idea. The RabbitMQ .NET library claims to be Mono compatible, but I don't know if the downloadable DLL is cross platform or if it needs to be manually built from source using mono. I want to verify basic operations before digging into cross-platform issues.

Status

Works! The driver acknowledges POS' request to switch and sends subsequent message through the queue. The browser does receive them as push notifications. I've done some testing with an ID Tech but not yet with a scale. Everything works so far including signature capture. It should be easier to debug "stuck" terminals in this mode since you can open a javascript console on the signature capture page and actually see what's happening rather than get barraged by a constant stream of AJAX polling requests.

Disabling

Found a minor bug or created a full on disaster?

  • Stop the RabbitMQ service
  • Close POS browser
  • Open POS browser
Clone this wiki locally