Creating Your First Application

预计阅读时间:3分钟

在本教程中,您将学习如何创建一个简单的自托管Ktor服务器应用程序,该应用程序使用Hello, World!响应HTTP请求Hello, World! . 可以使用常见的构建系统(例如MavenGradle)构建Ktor应用程序.

目录:

Including the right dependencies

Ktor分为几组工件,从而允许您仅包含所需的功能. 从而减少了包含所有代码的胖子容器的大小以及启动时间.

在这种情况下,您只需要包含工件ktor-server-netty . 有关所有可用工件的列表,请检查工件页面.

这些依赖的发行版在jcenter和maven Central中可用. 对于预发行版本,我们将其托管在Bintray kotlin / ktor上 .

有关使用不同构建系统设置构建文件的更详细指南,请检查:

Creating a self-hosted Application

Ktor允许应用程序使用Jetty,Netty或CIO在与Servlet兼容的应用程序服务器(例如Tomcat)中运行,或作为嵌入式应用程序运行.

在本教程中,我们将使用Netty创建一个自托管应用程序.

您可以通过调用embeddedServer函数开始,将引擎工厂作为第一个参数传递,将端口作为第二个参数传递,并将实际的应用程序代码作为第四个参数传递(第三个参数是主机,默认情况下为0.0.0.0 ).

下面的代码定义了一条路径,该路径响应URL /上的GET动词,并带有文本Hello, world!

定义路由之后,您必须通过调用server.start方法来启动服务器,并以boolean作为参数来指示是否要阻止应用程序的主线程.

Main.kt
import io.ktor.application.*
import io.ktor.http.*
import io.ktor.response.*
import io.ktor.routing.*
import io.ktor.server.engine.*
import io.ktor.server.netty.*

fun main(args: Array<String>) {
    val server = embeddedServer(Netty, 8080) {
        routing {
            get("/") {
                call.respondText("Hello, world!", ContentType.Text.Html)
            }
        }
    }
    server.start(wait = true)
}

 

如果您的服务器仅在侦听HTTP请求,并且在此之后不想再执行其他任何操作,则通常将调用server.start,并使用wait = true .

Running the Application

鉴于您的应用程序的入口点是标准的Kotlin main功能,您可以简单地运行它,有效地启动服务器并侦听指定的端口.

在浏览器中检查localhost:8080页面,您应该看到Hello, world! 文本.

Next Steps

这是启动并运行自托管Ktor应用程序的最简单示例. 建议继续学习服务器上的Ktor的方法是:

by  ICOPY.SITE