-
Notifications
You must be signed in to change notification settings - Fork 43
Using RabbitMQ
CORE will use RabbitMQ for Hardware Driver to POS communication if RabbitMQ is installed, running, and configured correctly. Consider this an experimental feature.
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.
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.
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.
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.
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.
Found a minor bug or created a full on disaster?
- Stop the RabbitMQ service
- Close POS browser
- Open POS browser