Simple Cognigy client based on websockets using ktor, kotlinx.coroutines and kotlinx.serialization.
Specifically it is a client for the Socket (Socket.io) endpoint.
The library implements enough of the socket.io protocol and Cognigy's protocol on top, so that most agent interactions should work without any issues.
- The engine.io and socket.io protocol layers only support the WebSockets transport.
- No automatic reconnection mechanism exists.
- While the Cognigy protocol is fairly simple, there is very little documentation on it and significant parts of the implementation are based on reverse engineering of the official webchat module and SocketClient library.
- Since Cognigy does not use any Binary frames, binary packet support in engine.io and socket.io have not been implemented.
- While all runtime dependencies are intentionally multiplatform capable, no attempt as been made to compile this project with Kotlin/JS or Kotlin/Native (Pull Requests welcome!). The same goes for Android support.