AI-Planning / planning-as-a-service

The newly improved planner (and more) in the cloud.
Apache License 2.0
30 stars 7 forks source link

Websocket notifications #40

Open jan-dolejsi opened 2 years ago

jan-dolejsi commented 2 years ago

Instead of the periodic polling and better still than long-polling (where the client tells the server how long is it willing to wait till the connection times-out), websockets are the most economic mechanism for delivering notifications to the client:

Example implementation: https://async-websockets.readthedocs.io/en/latest/

The client would establish a connection with the ws://server:port/check/qwer-qwer-qwer-wqre or ws://server:port/package/xyz/solve/qwer-qwer-qwer-wqre and the server would deliver notifications about new plans, or about the search status i.e. that the planner finished planning.

If the planner was capable of exposing more diagnostic information, it could also be sending the info about the states created and expanded in order to populate the diagnostic outputs like the visual search debugger in VS Code.

The client would also be able to send request to kill the search even before the timeout elapses.