Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pschichtel/kognigy
Simple Cognigy client based on websockets using ktor.
https://github.com/pschichtel/kognigy
cognigy coroutines kotlin kotlin-multiplatform
Last synced: 12 days ago
JSON representation
Simple Cognigy client based on websockets using ktor.
- Host: GitHub
- URL: https://github.com/pschichtel/kognigy
- Owner: pschichtel
- License: mit
- Created: 2021-07-17T01:27:26.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-05-22T11:13:43.000Z (9 months ago)
- Last Synced: 2024-05-22T11:22:53.376Z (9 months ago)
- Topics: cognigy, coroutines, kotlin, kotlin-multiplatform
- Language: Kotlin
- Homepage: https://schich.tel
- Size: 383 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Kognigy
Simple [Cognigy](https://www.cognigy.com/) client based on websockets using [ktor](https://ktor.io/), [kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) and [kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization).
Specifically it is a client for the Socket ([Socket.io](https://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.
## Limitations of this Implementation
* 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.