A websocket based server for building real time apps. This is specifically focusing on Apps which require the Fact Table notifications to be sent to Dimension side consumer. One example is: Order update notifications to restaurants.
- Simple to operate. Built in docker image.
- Completely open source so easy to customize for your own Fact and Dimensions Table.
- Complete support for cloud environment.
- Session Management (expiry and multiple concurrent session handling)
- Achieves low latency through go channels and routine support.
This is current in Development
- golang > 1.12
- Google cloud account
Below instructions have been tested on Ubuntu. MAC and windows operating system users might have to changes things according to their Operating System guidelines.
-
clone the repository.
-
From the Coral directory run the command
go build -o coral pkg/coral.go
-
Set the Google cloud credential file with command
export GOOGLE_APPLICATION_CREDENTIALS=<PATH_TO_CREDENTIAL_FILE>
-
Run the build binary file. By default this would pick dev properties file. which you have to change.
./coral
-
Once the server is running you can open the client.html to test the server as showing in demo
-
Clone the repository.
-
Docker file is included just run the command
docker build -t coral:1.0 .
-
Once the docker container is build you can run through docker command. Ensure that Google Application credential environment variable is set appropriately.
-
Now again use the client.html to connect and test it yourself.
In this demo we are showing on one side if we user is placing an order and there are two devices installed in restaurant. Both of those devices are getting updates.
For full demo you can see it on youtube: https://www.youtube.com/watch?v=wfMiPu1FEJk
If you have use case for a server which is maintaining lot of persitent connection to lot of devices. For example Tablets and Mobile phone app which need real time updates over websocket.
Currently the coral server is used by OrderMaster.ca which order notifiations to retaurants.