使用 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 上启动时崩溃

此代码适用于 iOS4.3 而不是 iOS5

Android Kotlin + Firestore - DocumentSnapshot.toObject 仅适用于模拟器,但安装后无效

CSRF 攻击是不是适用于 API?

Kotlin Multiplatform:如何在 iOS 的单元测试中模拟对象