Currently merchants run a web server to receive sale notifications from the marketplace. The marketplace sends requests to the merchant's web server.
This approach has two problems:
The merchant must run a server that's accessible from the open internet. The merchant is no longer in a pure client position.
The merchant has no way of knowing whether the marketplace can reach him or not.
I propose to send sale notifications over websockets initiated by the merchant. The merchant does not need to run a webserver to use the marketplace. And the merchant knowns if the websocket connection to the marketplace is interrupted and can react to it accordingly.
That would indeed be a great improvement. It would also allow students to work with the HPI servers via VPN - we couldn't make it work with the current approach. 👍
Currently merchants run a web server to receive sale notifications from the marketplace. The marketplace sends requests to the merchant's web server.
This approach has two problems:
I propose to send sale notifications over websockets initiated by the merchant. The merchant does not need to run a webserver to use the marketplace. And the merchant knowns if the websocket connection to the marketplace is interrupted and can react to it accordingly.
On the merchant-side Python
websockets
can be used to implement this feature. The marketplace uses Akka-Http since pull request https://github.com/hpi-epic/pricewars-marketplace/pull/11. This library also supports websockets.