https://github.com/samet404/ktor-websockets-task-app
Ktor tutorial example from ktor website
https://github.com/samet404/ktor-websockets-task-app
Last synced: 11 months ago
JSON representation
Ktor tutorial example from ktor website
- Host: GitHub
- URL: https://github.com/samet404/ktor-websockets-task-app
- Owner: samet404
- Created: 2025-03-08T18:40:38.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-08T18:41:05.000Z (about 1 year ago)
- Last Synced: 2025-06-07T12:46:10.501Z (12 months ago)
- Language: Kotlin
- Homepage:
- Size: 61.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ktor-websockets-task-app
This project was created using the [Ktor Project Generator](https://start.ktor.io).
Here are some useful links to get you started:
- [Ktor Documentation](https://ktor.io/docs/home.html)
- [Ktor GitHub page](https://github.com/ktorio/ktor)
- The [Ktor Slack chat](https://app.slack.com/client/T09229ZC6/C0A974TJ9). You'll need to [request an invite](https://surveys.jetbrains.com/s3/kotlin-slack-sign-up) to join.
## Features
Here's a list of features included in this project:
| Name | Description |
| ------------------------------------------------------------------------|------------------------------------------------------------------------------------ |
| [Routing](https://start.ktor.io/p/routing) | Provides a structured routing DSL |
| [Static Content](https://start.ktor.io/p/static-content) | Serves static files from defined locations |
| [WebSockets](https://start.ktor.io/p/ktor-websockets) | Adds WebSocket protocol support for bidirectional client connections |
| [Content Negotiation](https://start.ktor.io/p/content-negotiation) | Provides automatic content conversion according to Content-Type and Accept headers |
| [kotlinx.serialization](https://start.ktor.io/p/kotlinx-serialization) | Handles JSON serialization using kotlinx.serialization library |
## Building & Running
To build or run the project, use one of the following tasks:
| Task | Description |
| -------------------------------|---------------------------------------------------------------------- |
| `./gradlew test` | Run the tests |
| `./gradlew build` | Build everything |
| `buildFatJar` | Build an executable JAR of the server with all dependencies included |
| `buildImage` | Build the docker image to use with the fat JAR |
| `publishImageToLocalRegistry` | Publish the docker image locally |
| `run` | Run the server |
| `runDocker` | Run using the local docker image |
If the server starts successfully, you'll see the following output:
```
2024-12-04 14:32:45.584 [main] INFO Application - Application started in 0.303 seconds.
2024-12-04 14:32:45.682 [main] INFO Application - Responding at http://0.0.0.0:8080
```