异常打开套接字 kmongo 和 ktor

Posted

技术标签:

【中文标题】异常打开套接字 kmongo 和 ktor【英文标题】:Exception Opening Socket kmongo and ktor 【发布时间】:2021-01-07 01:31:28 【问题描述】:

我最近开始学习 ktor,以便我可以制作自己的 api,我设置了我的服务器,一切正常,但现在我想应用这种将数据保存到数据库中的逻辑,然后简单地从数据库加载数据并发送到我的服务器上

这就是我现在的做法
private fun insertDetails(user : ArrayList<userCredentials>)
     val client = KMongo.createClient()
     var database = client.getDatabase("test")
     var collection = database.getCollection<ArrayList<userCredentials>>()
     CoroutineScope(Dispatchers.IO).launch 
         collection.insertOne(user)
     
 

*这就是我从 kmongo db 获取数据的方式

private suspend fun getData() : List<ArrayList<userCredentials>> 
    return KMongo.createClient().getDatabase("test")
        .getCollection<ArrayList<userCredentials>>()
        .find().toList()

这是一个例外
com.mongodb.MongoSocketOpenException: Exception opening socket

我想问一下我这样做是否正确

这是我的方案:将数据保存在 db 中 -> 从 db 获取数据 -> 将其发送到我的服务器 m 谢谢

【问题讨论】:

【参考方案1】:

确保 mongo 守护进程正在运行,并且目标端口已在防火墙中打开。

【讨论】:

【参考方案2】:

确实需要运行 mongo 守护进程:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/#using-mongodb-from-10gen-builds

我必须做的:

brew tap mongodb/brew
brew install mongodb-community@5.0
brew services start mongodb-community@5.0

然后它起作用了。

【讨论】:

以上是关于异常打开套接字 kmongo 和 ktor的主要内容,如果未能解决你的问题,请参考以下文章

Kmongo (Kotlin Server + Mongo) 的 Ktor 服务器配置问题

ktor 中的当前 Web 套接字会话

尝试将docker容器连接到mongodb时出现异常打开套接字异常

异常打开套接字 - MongoDB,Docker

com.mongodb.MongoSocketOpenException:异常打开套接字(MongoDB,Docker)

Kotlin/Native 无法导入 io.ktor.network.selector.ActorSelectorManager