Ktor项目localhost:8080拒绝连接

时间:2020-08-28 04:27:29

标签: java kotlin port ktor

我当时正在从事ktor项目,一切工作正常。我启动了服务器,它在端口8080上运行良好,但是由于某种原因,现在突然停止了工作。我终止了任务并尝试了所有操作,但不确定是否出了问题。我试图重新安装IntelliJ Idea,但仍然遇到相同的问题。我尝试使用127.0.0.1 ,0.0.0.0 ,本地主机,但没有一个人可以做什么。我在这件事上浪费了大约2个小时。我尝试过更改端口,阻止防火墙和防病毒。

2 个答案:

答案 0 :(得分:0)

我通常在使用Ktor时遇到相同的问题,这令人沮丧。然后,我将发布以下可能的修复程序,您应按顺序尝试这些操作并阅读步骤。我要考虑的是,您在一台独特的计算机上正在为Android应用程序运行WebSocket服务器和WebSocket客户端。

  1. 您正在使用相同的ip运行服务器端和客户端 它不应该工作,因为客户端无法连接到 服务器。当我测试需要服务器端和 客户端,我使用计算机运行Android应用和笔记本电脑 运行服务器端。如果这不是您的情况,请执行 不专心。

  2. 在客户端,当您创建HttpClient的实例时, 您将任何价值传递给客户作为引擎还是只是去 直接用lambda吗?根据我的经验,当我创建 HttpClient实例仅适用于以下两个第一个实例:

    val client = HttpClient {
       install(WebSockets)
    }
    

    val client = HttpClient(CIO){
       install(WebSockets)
    }
    

    不适用于我的引擎是:

    val client = HttpClient(OkHttp) {
       install(WebSockets)
    }
    
  3. 最后,当您使用过去的客户端创建WebSocket时 例如,您应该使用

    client.ws(
            HttpMethod.Get,
            "localhost",
            8080,
            "/"
    )
    {
    //Client code
    }
    

    ,而不是client.wss。那是因为在本地连接中,您的客户 不要使用TLS安全性进行连接,这将引发异常。如果 您正在将服务器端部署在具有TLS安全性的主机中 作为Heroku,那么您可以使用wss之一,因为客户端 将使用TLS证书进行连接。

希望我的回复会有所帮助。祝你好运!

答案 1 :(得分:0)

如果您使用 wifi,请将 127.0.0.1(localhost) 更改为您的私有 ip,例如 172.30.1.59。如果您使用固定IP,则使用它。我有同样的问题,但用这个解决它。好的! cmd -> ipconfig -> use ip address