一个用于连接 Apple 操作系统上的 Phoenix Channels 并与之交互的软件包,使用 Swift 编写,并利用了内置的 WebSocket 支持和 Swift 并发特性。
Socket
和 Channel
的公共接口是简单的结构体,它们的公共方法以闭包的形式暴露。 这种设计的目的是为了方便在您的代码中注入伪造的 sockets 和 channels 以进行测试。
Phoenix socket 和 channel 的实际实现是 PhoenixSocket
和 PhoenixChannel
,但这些不是公开可用的。 相反,您可以通过 Socket.production(url:)
工厂选择使用它们。
仅兼容 Phoenix channels vsn=2.0.0。
要使用 Phoenix,请将依赖项添加到您的 Package.swift 文件中
let package = Package(
dependencies: [
.package(
url: "https://github.com/shareup/phoenix-apple.git",
from: "8.0.0"
)
]
)
import Phoenix
let socket = Socket.production(url: URL(string: "wss://example.com/socket")!)
await socket.connect()
let channel = await socket.channel("room:123", [:])
let messagesTask = Task {
for await message in channel.messages() {
print(message)
}
}
let joinResponse = try await channel.join()
try await channel.send("one-off-message", [:])
let response = try await channel.request("message-needing-reply", [:])
try await channel.leave()
messagesTask.cancel()
phoenix-apple
目录phoenix-apple
目录phoenix-apple
目录swift test
运行测试