问题标签 [swift-nio]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift-nio - SwiftNIO:发送和接收 UDP 广播
我正在尝试使用 SwiftNIO 构建 TCP 服务器。服务器在网络中启动,但客户端不知道 IP 地址。因此,我也想启动一个 UDP 服务器,如果客户端出现,他会向网络发送广播消息。服务器将接收并回答,以便客户端现在知道 IP 地址。
是否可以使用 SwiftNIO 构建类似的东西?
ios - 如何使应用程序允许与 SwiftNIO 的传入网络连接?
我正在使用MicroExpress在应用程序中创建 Web 服务器SwiftUI
。当我在模拟器中运行应用程序时,我可以连接到服务器,但我无法让它在我的真实设备上运行。
MicroExpress(基于SwiftNIO
)在 iPhone 上创建一个 Web 服务器,并在本地网络中公开一个 API。
我想我需要添加一个功能或其他东西,但我找不到网络功能,也找不到允许传入网络连接的Xcode 11
设置Signing & Capabilities
。
如何使应用程序允许传入网络连接?
编辑
如果有必要,我已经添加Allow Arbitrary Loads
了允许。HTTP
我现在正在连接HTTP
。
swift - 如何在 Swift 中正确使用 EventLoopFuture?
我是 EventLoop 期货和承诺的新手。我的软件堆栈:
- Go + gRPC 中的后端
- Swift + SwiftUI + GRPC + NIO 中的 iOS 客户端
我有一些工作要做,并正在寻找有关如何改进它的建议,因为我在 , , 等周围的文档中有点.map
迷失.flatMap
了.always
。
这是我在 iOS 应用程序中的 gRPC 数据单例中的一个相关函数:
我在 SwiftUI 视图中的代码:
我应该重构getItem
和/或readItem
吗?有什么具体建议吗?
swift - 如何使用 async-http-client
我正在尝试执行async-http-client
doku 的示例。但不幸的是,闭包中的代码没有被执行。为什么?
在控制台中我得到:Program ended with exit code: 0
。所以它执行成功。但是控制台中没有打印语句。
谢谢!
swift - 使用 async-http-client 进行摘要式身份验证
我正在尝试在 swiftNIO 之上使用 async-http-client 实现摘要身份验证。因此我使用了一个使用 HTTPClientResponseDelegate 协议的类。在这堂课中
我解析第一个服务器响应并为响应生成哈希。现在我必须用我的哈希构造 Authorization 标头,符合摘要式身份验证。但是我怎样才能从我的班级再次将它发送到服务器?我必须创建一个新的 HTTPClient.Request 还是可以直接从我的班级中使用标题做出响应?也许有人可以给我一个提示,如何使用 swiftNIO 和 async-http-client 来实现这一点。
谢谢阿诺德
netty - Swift-NIO TCP Client 自动重连
我在 Swift-NIO 中编写了一个 TCP Client 来连接 Netty TCP Server。我希望 tcp 客户端可以在需要时自动重新连接。
它与作品有关,但有些不对劲。我使用 eventLoop.scheduleRepeatedTask 每 10 秒检查一次,连接后取消 RepeatedTask。但是 self.task?.cancel() 不起作用,我查看了取消的源代码。取消重复任务的正确方法是什么?谢谢
是的,任务为零,所以取消不起作用。我将全局变量更改为静态
现在工作正常。
但我仍然不确定在 Swift-NIO 中自动重新连接的最佳实践是什么。在我的 Android 应用程序中,我像这样将 Netty 用于 TCP 客户端
我使用 ReconnectHandler 进行重新连接,使用 getConnectionListener 进行监听。在 Swift-NIO 中是否有类似的 Listener 或其他解决方案?
swift - Swift Digest 身份验证 async-http-client
我正在尝试在 swiftNIO 之上使用 swift 创建摘要身份验证。最后我收到以下错误:操作无法完成。(NIO.NIOConnectionError 错误 1。)
这是我的做法:
然后在主线程中我执行以下操作:
不幸的是,我没有找到其他方法来创建标题。我必须传递“”的值,因为响应头必须是(维基百科):“授权:”,然后是其余的。这是我生成的响应标头的示例: [("Authorization: Digest username=\"myuser\",realm=\"Testserver\",nonce=\"4F4L1eHYktYv6n7LR4s5yyL5uMiVgKSg\",uri=\" http://myurl \" ,响应=\"4bc3cdfc727bec9edebf6a55dac677a7\"", "")]
我不确定这个错误:是因为我的 headerresponse 还是因为我从主线程而不是我的委托内部创建了一个新请求,但 httpclient 始终是同一个实例。如果它位于标头响应上,似乎没有办法使用 async-http-client 将响应字符串直接写入标头。
谢谢阿诺德
swift - 将循环阻塞代码重写为 SwiftNIO 风格的非阻塞代码
我正在开发一个将从网络读取数据的驱动程序。它不知道响应中有多少,除了当它尝试读取并返回 0 字节时,它就完成了。所以我的阻塞 Swift 代码看起来很天真:
我如何将其重写为将继续运行直到读取整个结果的承诺?在试图将我的大脑包裹起来之后,我仍然被困在这里:
我应该补充一点,我可以重写 read() 而不是返回 [Byte] 返回 EventLoopFuture<[Byte]>
swift - SwiftNIO 和 Vapor 中的链式投掷期货
在 Vapor 4 中,我通过在 3rd 方 API 上调用请求并根据我返回的结果返回一个值来处理发布请求。以下代码导致错误:“从抛出函数...到非抛出函数的无效转换”
获得 API 结果后,我似乎无法try
在我的链中使用。如果我在地图内部添加一个,map()
上面的代码将起作用,但理想情况下我想捕捉这个错误。创建响应主体时使用的第一个似乎隐式传递回链,但不是第二个。!
try
let response = try response.content.decode(ResponseModel.self)
try
我究竟做错了什么?解码响应内容时如何捕获错误?为什么第一个try
被抓到,第二个没有被抓到?
swift - TLS CA 证书 SSL Pinning 使用 SWIFT-NIO-SSL
我一直在尝试使用SWIFT-NIO-SSL,使用 CA 证书和服务器证书连接到服务器。
经过数字尝试并尝试了不同的方法,我找不到解决方案。是否有任何教程或任何帮助使用带有 swift-nio-ssl 的 ca 证书连接到 TLS 会有所帮助。