Ktor项目localhost:8080拒绝连接



我正在做一个ktor项目,一切都很好。我启动了服务器,它在8080端口上运行良好,但现在由于某种原因,它突然停止了工作。我完成了任务,尝试了一切,我不确定出了什么问题。我试图重新安装IntelliJ Idea,但我仍然面临同样的问题。我尝试使用127.0.0.1,0.0.0.0,localhost,但他们都不知道该做什么。我在这件事上浪费了大约2个小时。我尝试过更改端口、阻止防火墙和防病毒。

如果您使用wifi,请将127.0.0.1(localhost(更改为您的私人ip,如172.30.1.59。如果你使用固定ip,那就使用它。我也有同样的问题,但用这个解决它。美好的cmd->ipconfig->使用ip地址

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

  1. 您正在使用相同的ip和它不应该工作,因为客户端无法连接到服务器当我测试一个需要服务器端和客户端我用电脑运行安卓应用程序和笔记本电脑以运行服务器端。如果不是你的情况,那就去做不注意。

  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证书进行连接。

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

我也遇到了同样的问题,结果是因为我安装了HttpsDirect和HSTS插件。因此,它拒绝处理http请求,并且由于我没有本地主机或本地IP的任何证书,所以它不起作用。

在本地运行时禁用这两个插件可以让我正常工作

最新更新