使用 Kotlin 时是不是有适用于 iOS 的 WebSocket 客户端库?
Posted
技术标签:
【中文标题】使用 Kotlin 时是不是有适用于 iOS 的 WebSocket 客户端库?【英文标题】:Is there a WebSocket client library for iOS when using Kotlin?使用 Kotlin 时是否有适用于 iOS 的 WebSocket 客户端库? 【发布时间】:2019-12-16 00:37:07 【问题描述】:我正在寻找可以在 Kotlin 多平台项目中用于我的 ios 实现的 WebSocket 库。这个项目目前在 IntelliJ 中,我正在使用 Gradle 来管理依赖项。
我一直找不到支持 iOS 的库,并且我可以通过 Gradle 专门将其拉入我的项目。
Starscream、Socket.io、SocketRocket 等似乎只能在 Xcode/CocooPods 中导入依赖项,而我的 IntelliJ 项目则无法通过 Gradle 导入。
为了提供更多背景信息,我的项目有以下内容
-
我在项目中所有常用功能的 Kotlin 通用代码
用于 Java、javascript 和 iOS/Swift 的 WebSocket 实现的平台特定代码
平台特定实现的原因是因为我还没有找到支持所有平台的 WebSockets 的通用库。
Ktor 很接近,但从我在他们的文档中看到的,他们的 WebSocket 客户端不支持 iOS,而他们的 Http 客户端支持所有平台。
如果有人有任何真正有用的建议。
【问题讨论】:
【参考方案1】:ktor 的人说他们正在努力将 Websockets 引入 iOS,但距离发布还有几个月的时间。 我还没有尝试过,但是您可以将 cocoapods 导入到多平台项目中,所以也许您可以这样使用它,但请注意它只会在 xcode 中编译。
另外你应该在 slack 上加入 kotlinlang,jetbrains 的人在那里非常活跃,通常会在一天内得到答案。
【讨论】:
感谢您的回复。我尝试导入 cocaopods,但这样做的唯一用途是让我为我的图书馆制作一个 pod,这很棒,因为我的客户实际上需要这个!但是我无法在多平台项目的 Kotlin/Native 代码中导入任何 pod 依赖项,这是可以理解的,因为 cocaopods 是 Xcode 的依赖项管理工具。我已经加入了 kotlinlang slack 频道,所以谢谢你! :) 我会向他们提问。希望在等待 Ktor 期间有临时解决方案。 有一个 cocoapods gradle 插件。不确定它是否可以在这里工作:kotlinlang.org/docs/reference/native/cocoapods.html以上是关于使用 Kotlin 时是不是有适用于 iOS 的 WebSocket 客户端库?的主要内容,如果未能解决你的问题,请参考以下文章
Corona SDK 是不是适用于使用 tableview 导航的 iOS / Android 应用程序
iOS 应用在适用于 iOS 14 及更低版本但不是 iOS 15+ 的 Testflight 上启动时崩溃
Android Kotlin + Firestore - DocumentSnapshot.toObject 仅适用于模拟器,但安装后无效